.class Lcom/google/common/graph/StandardNetwork; .super Lcom/google/common/graph/AbstractNetwork; .source "StandardNetwork.java" # annotations .annotation runtime Lcom/google/common/graph/ElementTypesAreNonnullByDefault; .end annotation .annotation system Ldalvik/annotation/Signature; value = { "", "Lcom/google/common/graph/AbstractNetwork<", "TN;TE;>;" } .end annotation # instance fields .field private final allowsParallelEdges:Z .field private final allowsSelfLoops:Z .field private final edgeOrder:Lcom/google/common/graph/ElementOrder; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/common/graph/ElementOrder<", "TE;>;" } .end annotation .end field .field public final edgeToReferenceNode:Lcom/google/common/graph/MapIteratorCache; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/common/graph/MapIteratorCache<", "TE;TN;>;" } .end annotation .end field .field private final isDirected:Z .field public final nodeConnections:Lcom/google/common/graph/MapIteratorCache; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/common/graph/MapIteratorCache<", "TN;", "Lcom/google/common/graph/NetworkConnections<", "TN;TE;>;>;" } .end annotation .end field .field private final nodeOrder:Lcom/google/common/graph/ElementOrder; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/common/graph/ElementOrder<", "TN;>;" } .end annotation .end field # direct methods .method public constructor (Lcom/google/common/graph/NetworkBuilder;)V .locals 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/graph/NetworkBuilder<", "-TN;-TE;>;)V" } .end annotation .line 1 iget-object v0, p1, Lcom/google/common/graph/AbstractGraphBuilder;->nodeOrder:Lcom/google/common/graph/ElementOrder; iget-object v1, p1, Lcom/google/common/graph/AbstractGraphBuilder;->expectedNodeCount:Lcom/google/common/base/Optional; const/16 v2, 0xa .line 2 invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v2 invoke-virtual {v1, v2}, Lcom/google/common/base/Optional;->or(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/lang/Integer; invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I move-result v1 .line 3 invoke-virtual {v0, v1}, Lcom/google/common/graph/ElementOrder;->createMap(I)Ljava/util/Map; move-result-object v0 iget-object v1, p1, Lcom/google/common/graph/NetworkBuilder;->edgeOrder:Lcom/google/common/graph/ElementOrder; iget-object v2, p1, Lcom/google/common/graph/NetworkBuilder;->expectedEdgeCount:Lcom/google/common/base/Optional; const/16 v3, 0x14 .line 4 invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v3 invoke-virtual {v2, v3}, Lcom/google/common/base/Optional;->or(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/lang/Integer; invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I move-result v2 invoke-virtual {v1, v2}, Lcom/google/common/graph/ElementOrder;->createMap(I)Ljava/util/Map; move-result-object v1 .line 5 invoke-direct {p0, p1, v0, v1}, Lcom/google/common/graph/StandardNetwork;->(Lcom/google/common/graph/NetworkBuilder;Ljava/util/Map;Ljava/util/Map;)V return-void .end method .method public constructor (Lcom/google/common/graph/NetworkBuilder;Ljava/util/Map;Ljava/util/Map;)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/graph/NetworkBuilder<", "-TN;-TE;>;", "Ljava/util/Map<", "TN;", "Lcom/google/common/graph/NetworkConnections<", "TN;TE;>;>;", "Ljava/util/Map<", "TE;TN;>;)V" } .end annotation .line 6 invoke-direct {p0}, Lcom/google/common/graph/AbstractNetwork;->()V .line 7 iget-boolean v0, p1, Lcom/google/common/graph/AbstractGraphBuilder;->directed:Z iput-boolean v0, p0, Lcom/google/common/graph/StandardNetwork;->isDirected:Z .line 8 iget-boolean v0, p1, Lcom/google/common/graph/NetworkBuilder;->allowsParallelEdges:Z iput-boolean v0, p0, Lcom/google/common/graph/StandardNetwork;->allowsParallelEdges:Z .line 9 iget-boolean v0, p1, Lcom/google/common/graph/AbstractGraphBuilder;->allowsSelfLoops:Z iput-boolean v0, p0, Lcom/google/common/graph/StandardNetwork;->allowsSelfLoops:Z .line 10 iget-object v0, p1, Lcom/google/common/graph/AbstractGraphBuilder;->nodeOrder:Lcom/google/common/graph/ElementOrder; invoke-virtual {v0}, Lcom/google/common/graph/ElementOrder;->cast()Lcom/google/common/graph/ElementOrder; move-result-object v0 iput-object v0, p0, Lcom/google/common/graph/StandardNetwork;->nodeOrder:Lcom/google/common/graph/ElementOrder; .line 11 iget-object p1, p1, Lcom/google/common/graph/NetworkBuilder;->edgeOrder:Lcom/google/common/graph/ElementOrder; invoke-virtual {p1}, Lcom/google/common/graph/ElementOrder;->cast()Lcom/google/common/graph/ElementOrder; move-result-object p1 iput-object p1, p0, Lcom/google/common/graph/StandardNetwork;->edgeOrder:Lcom/google/common/graph/ElementOrder; .line 12 instance-of p1, p2, Ljava/util/TreeMap; if-eqz p1, :cond_0 .line 13 new-instance p1, Lcom/google/common/graph/MapRetrievalCache; invoke-direct {p1, p2}, Lcom/google/common/graph/MapRetrievalCache;->(Ljava/util/Map;)V goto :goto_0 .line 14 :cond_0 new-instance p1, Lcom/google/common/graph/MapIteratorCache; invoke-direct {p1, p2}, Lcom/google/common/graph/MapIteratorCache;->(Ljava/util/Map;)V :goto_0 iput-object p1, p0, Lcom/google/common/graph/StandardNetwork;->nodeConnections:Lcom/google/common/graph/MapIteratorCache; .line 15 new-instance p1, Lcom/google/common/graph/MapIteratorCache; invoke-direct {p1, p3}, Lcom/google/common/graph/MapIteratorCache;->(Ljava/util/Map;)V iput-object p1, p0, Lcom/google/common/graph/StandardNetwork;->edgeToReferenceNode:Lcom/google/common/graph/MapIteratorCache; return-void .end method # virtual methods .method public adjacentNodes(Ljava/lang/Object;)Ljava/util/Set; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(TN;)", "Ljava/util/Set<", "TN;>;" } .end annotation .line 1 invoke-virtual {p0, p1}, Lcom/google/common/graph/StandardNetwork;->checkedConnections(Ljava/lang/Object;)Lcom/google/common/graph/NetworkConnections; move-result-object p1 invoke-interface {p1}, Lcom/google/common/graph/NetworkConnections;->adjacentNodes()Ljava/util/Set; move-result-object p1 return-object p1 .end method .method public allowsParallelEdges()Z .locals 1 .line 1 iget-boolean v0, p0, Lcom/google/common/graph/StandardNetwork;->allowsParallelEdges:Z return v0 .end method .method public allowsSelfLoops()Z .locals 1 .line 1 iget-boolean v0, p0, Lcom/google/common/graph/StandardNetwork;->allowsSelfLoops:Z return v0 .end method .method public final checkedConnections(Ljava/lang/Object;)Lcom/google/common/graph/NetworkConnections; .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(TN;)", "Lcom/google/common/graph/NetworkConnections<", "TN;TE;>;" } .end annotation .line 1 iget-object v0, p0, Lcom/google/common/graph/StandardNetwork;->nodeConnections:Lcom/google/common/graph/MapIteratorCache; invoke-virtual {v0, p1}, Lcom/google/common/graph/MapIteratorCache;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/common/graph/NetworkConnections; if-eqz v0, :cond_0 return-object v0 .line 2 :cond_0 invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; .line 3 new-instance v0, Ljava/lang/IllegalArgumentException; const/4 v1, 0x1 new-array v1, v1, [Ljava/lang/Object; const/4 v2, 0x0 aput-object p1, v1, v2 const-string p1, "Node %s is not an element of this graph." invoke-static {p1, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw v0 .end method .method public final checkedReferenceNode(Ljava/lang/Object;)Ljava/lang/Object; .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(TE;)TN;" } .end annotation .line 1 iget-object v0, p0, Lcom/google/common/graph/StandardNetwork;->edgeToReferenceNode:Lcom/google/common/graph/MapIteratorCache; invoke-virtual {v0, p1}, Lcom/google/common/graph/MapIteratorCache;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 if-eqz v0, :cond_0 return-object v0 .line 2 :cond_0 invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; .line 3 new-instance v0, Ljava/lang/IllegalArgumentException; const/4 v1, 0x1 new-array v1, v1, [Ljava/lang/Object; const/4 v2, 0x0 aput-object p1, v1, v2 const-string p1, "Edge %s is not an element of this graph." invoke-static {p1, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw v0 .end method .method public final containsEdge(Ljava/lang/Object;)Z .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(TE;)Z" } .end annotation .line 1 iget-object v0, p0, Lcom/google/common/graph/StandardNetwork;->edgeToReferenceNode:Lcom/google/common/graph/MapIteratorCache; invoke-virtual {v0, p1}, Lcom/google/common/graph/MapIteratorCache;->containsKey(Ljava/lang/Object;)Z move-result p1 return p1 .end method .method public final containsNode(Ljava/lang/Object;)Z .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(TN;)Z" } .end annotation .line 1 iget-object v0, p0, Lcom/google/common/graph/StandardNetwork;->nodeConnections:Lcom/google/common/graph/MapIteratorCache; invoke-virtual {v0, p1}, Lcom/google/common/graph/MapIteratorCache;->containsKey(Ljava/lang/Object;)Z move-result p1 return p1 .end method .method public edgeOrder()Lcom/google/common/graph/ElementOrder; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lcom/google/common/graph/ElementOrder<", "TE;>;" } .end annotation .line 1 iget-object v0, p0, Lcom/google/common/graph/StandardNetwork;->edgeOrder:Lcom/google/common/graph/ElementOrder; return-object v0 .end method .method public edges()Ljava/util/Set; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/util/Set<", "TE;>;" } .end annotation .line 1 iget-object v0, p0, Lcom/google/common/graph/StandardNetwork;->edgeToReferenceNode:Lcom/google/common/graph/MapIteratorCache; invoke-virtual {v0}, Lcom/google/common/graph/MapIteratorCache;->unmodifiableKeySet()Ljava/util/Set; move-result-object v0 return-object v0 .end method .method public edgesConnecting(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set; .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(TN;TN;)", "Ljava/util/Set<", "TE;>;" } .end annotation .line 1 invoke-virtual {p0, p1}, Lcom/google/common/graph/StandardNetwork;->checkedConnections(Ljava/lang/Object;)Lcom/google/common/graph/NetworkConnections; move-result-object v0 .line 2 iget-boolean v1, p0, Lcom/google/common/graph/StandardNetwork;->allowsSelfLoops:Z if-nez v1, :cond_0 if-ne p1, p2, :cond_0 .line 3 invoke-static {}, Lcom/google/common/collect/ImmutableSet;->of()Lcom/google/common/collect/ImmutableSet; move-result-object p1 return-object p1 .line 4 :cond_0 invoke-virtual {p0, p2}, Lcom/google/common/graph/StandardNetwork;->containsNode(Ljava/lang/Object;)Z move-result p1 const-string v1, "Node %s is not an element of this graph." invoke-static {p1, v1, p2}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V .line 5 invoke-interface {v0, p2}, Lcom/google/common/graph/NetworkConnections;->edgesConnecting(Ljava/lang/Object;)Ljava/util/Set; move-result-object p1 return-object p1 .end method .method public inEdges(Ljava/lang/Object;)Ljava/util/Set; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(TN;)", "Ljava/util/Set<", "TE;>;" } .end annotation .line 1 invoke-virtual {p0, p1}, Lcom/google/common/graph/StandardNetwork;->checkedConnections(Ljava/lang/Object;)Lcom/google/common/graph/NetworkConnections; move-result-object p1 invoke-interface {p1}, Lcom/google/common/graph/NetworkConnections;->inEdges()Ljava/util/Set; move-result-object p1 return-object p1 .end method .method public incidentEdges(Ljava/lang/Object;)Ljava/util/Set; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(TN;)", "Ljava/util/Set<", "TE;>;" } .end annotation .line 1 invoke-virtual {p0, p1}, Lcom/google/common/graph/StandardNetwork;->checkedConnections(Ljava/lang/Object;)Lcom/google/common/graph/NetworkConnections; move-result-object p1 invoke-interface {p1}, Lcom/google/common/graph/NetworkConnections;->incidentEdges()Ljava/util/Set; move-result-object p1 return-object p1 .end method .method public incidentNodes(Ljava/lang/Object;)Lcom/google/common/graph/EndpointPair; .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(TE;)", "Lcom/google/common/graph/EndpointPair<", "TN;>;" } .end annotation .line 1 invoke-virtual {p0, p1}, Lcom/google/common/graph/StandardNetwork;->checkedReferenceNode(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 .line 2 iget-object v1, p0, Lcom/google/common/graph/StandardNetwork;->nodeConnections:Lcom/google/common/graph/MapIteratorCache; invoke-virtual {v1, v0}, Lcom/google/common/graph/MapIteratorCache;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/google/common/graph/NetworkConnections; invoke-static {v1}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object; check-cast v1, Lcom/google/common/graph/NetworkConnections; invoke-interface {v1, p1}, Lcom/google/common/graph/NetworkConnections;->adjacentNode(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 .line 3 invoke-static {p0, v0, p1}, Lcom/google/common/graph/EndpointPair;->of(Lcom/google/common/graph/Network;Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/graph/EndpointPair; move-result-object p1 return-object p1 .end method .method public isDirected()Z .locals 1 .line 1 iget-boolean v0, p0, Lcom/google/common/graph/StandardNetwork;->isDirected:Z return v0 .end method .method public nodeOrder()Lcom/google/common/graph/ElementOrder; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lcom/google/common/graph/ElementOrder<", "TN;>;" } .end annotation .line 1 iget-object v0, p0, Lcom/google/common/graph/StandardNetwork;->nodeOrder:Lcom/google/common/graph/ElementOrder; return-object v0 .end method .method public nodes()Ljava/util/Set; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/util/Set<", "TN;>;" } .end annotation .line 1 iget-object v0, p0, Lcom/google/common/graph/StandardNetwork;->nodeConnections:Lcom/google/common/graph/MapIteratorCache; invoke-virtual {v0}, Lcom/google/common/graph/MapIteratorCache;->unmodifiableKeySet()Ljava/util/Set; move-result-object v0 return-object v0 .end method .method public outEdges(Ljava/lang/Object;)Ljava/util/Set; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(TN;)", "Ljava/util/Set<", "TE;>;" } .end annotation .line 1 invoke-virtual {p0, p1}, Lcom/google/common/graph/StandardNetwork;->checkedConnections(Ljava/lang/Object;)Lcom/google/common/graph/NetworkConnections; move-result-object p1 invoke-interface {p1}, Lcom/google/common/graph/NetworkConnections;->outEdges()Ljava/util/Set; move-result-object p1 return-object p1 .end method .method public bridge synthetic predecessors(Ljava/lang/Object;)Ljava/lang/Iterable; .locals 0 .line 1 invoke-virtual {p0, p1}, Lcom/google/common/graph/StandardNetwork;->predecessors(Ljava/lang/Object;)Ljava/util/Set; move-result-object p1 return-object p1 .end method .method public predecessors(Ljava/lang/Object;)Ljava/util/Set; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(TN;)", "Ljava/util/Set<", "TN;>;" } .end annotation .line 2 invoke-virtual {p0, p1}, Lcom/google/common/graph/StandardNetwork;->checkedConnections(Ljava/lang/Object;)Lcom/google/common/graph/NetworkConnections; move-result-object p1 invoke-interface {p1}, Lcom/google/common/graph/NetworkConnections;->predecessors()Ljava/util/Set; move-result-object p1 return-object p1 .end method .method public bridge synthetic successors(Ljava/lang/Object;)Ljava/lang/Iterable; .locals 0 .line 1 invoke-virtual {p0, p1}, Lcom/google/common/graph/StandardNetwork;->successors(Ljava/lang/Object;)Ljava/util/Set; move-result-object p1 return-object p1 .end method .method public successors(Ljava/lang/Object;)Ljava/util/Set; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(TN;)", "Ljava/util/Set<", "TN;>;" } .end annotation .line 2 invoke-virtual {p0, p1}, Lcom/google/common/graph/StandardNetwork;->checkedConnections(Ljava/lang/Object;)Lcom/google/common/graph/NetworkConnections; move-result-object p1 invoke-interface {p1}, Lcom/google/common/graph/NetworkConnections;->successors()Ljava/util/Set; move-result-object p1 return-object p1 .end method