This repository has been archived on 2023-06-18. You can view files and clone it, but cannot push or open issues or pull requests.
ima02/resources/defects4j-checkout-closure-1f/javadoc/com/google/javascript/jscomp/graph/Graph.html
github-classroom[bot] e42e547e48
Initial commit
2023-04-25 11:33:41 +00:00

852 lines
47 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<TITLE>
Graph (Compiler)
</TITLE>
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../dev_javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Graph (Compiler)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../com/google/javascript/jscomp/graph/FixedPointGraphTraversal.EdgeCallback.html" title="interface in com.google.javascript.jscomp.graph"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.GraphEdge.html" title="interface in com.google.javascript.jscomp.graph"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?com/google/javascript/jscomp/graph/Graph.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="Graph.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
com.google.javascript.jscomp.graph</FONT>
<BR>
Class Graph&lt;N,E&gt;</H2>
<PRE>
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.google.javascript.jscomp.graph.Graph&lt;N,E&gt;</B>
</PRE>
<DL>
<DT><DT><B>Type Parameters:</B><DD><CODE>N</CODE> - Value type that the graph node stores.<DD><CODE>E</CODE> - Value type that the graph edge stores.</DL>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/google/javascript/jscomp/graph/AdjacencyGraph.html" title="interface in com.google.javascript.jscomp.graph">AdjacencyGraph</A>&lt;N,E&gt;</DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../com/google/javascript/jscomp/graph/DiGraph.html" title="class in com.google.javascript.jscomp.graph">DiGraph</A>, <A HREF="../../../../../com/google/javascript/jscomp/graph/UndiGraph.html" title="class in com.google.javascript.jscomp.graph">UndiGraph</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <B>Graph&lt;N,E&gt;</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../../com/google/javascript/jscomp/graph/AdjacencyGraph.html" title="interface in com.google.javascript.jscomp.graph">AdjacencyGraph</A>&lt;N,E&gt;</DL>
</PRE>
<P>
The base generic class for graph-like data structure and algorithms in
the compiler.
<p>
Nodes and edges in the graph can store a piece of data that this graph is
used to represent. For example, a variable interference graph might store a
variable in the node. This piece of data can be accessed with
<A HREF="../../../../../com/google/javascript/jscomp/graph/GraphNode.html#getValue()"><CODE>GraphNode.getValue()</CODE></A> and <A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.GraphEdge.html#getValue()"><CODE>Graph.GraphEdge.getValue()</CODE></A>.
<p>
Algorithms and analysis can annotate information on the nodes and edges
using <A HREF="../../../../../com/google/javascript/jscomp/graph/GraphNode.html#getValue()"><CODE>GraphNode.getValue()</CODE></A> and <A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.GraphEdge.html#getValue()"><CODE>Graph.GraphEdge.getValue()</CODE></A>. For example,
a graph coloring algorithm can store the color as an annotation. If multiple
analyses are required, it is up to the user of the analysis to save the
annotated solution between passes.
<p>
We implemented our own graph data structure (as opposed to using
<code>com.google.common.graph</code>) for two reasons. First, aside from
the node's label value, we would like to annotate information on the nodes
and edges. Using a map to annotate would introduce too much overhead during
fix point analysis. Also, <code>com.google.common.graph</code> does not
support labeling of edges. Secondly, not using another external package would
limit our dependencies.
<p>
TODO(user): All functionality for removing nodes and edges.
<P>
<P>
<HR>
<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<A NAME="nested_class_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Nested Class Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;interface</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.GraphEdge.html" title="interface in com.google.javascript.jscomp.graph">Graph.GraphEdge</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.GraphEdge.html" title="type parameter in Graph.GraphEdge">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.GraphEdge.html" title="type parameter in Graph.GraphEdge">E</A>&gt;</B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A generic edge.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#Graph()">Graph</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#clearEdgeAnnotations()">clearEdgeAnnotations</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Makes each edge's annotation null.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#clearNodeAnnotations()">clearNodeAnnotations</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Makes each node's annotation null.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#connect(N, E, N)">connect</A></B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&nbsp;edge,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connects two nodes in the graph with an edge.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#connectIfNotFound(N, E, N)">connectIfNotFound</A></B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&nbsp;edge,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connects two nodes in the graph with an edge if such edge does not already
exists between the nodes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;<A HREF="../../../../../com/google/javascript/jscomp/graph/GraphNode.html" title="interface in com.google.javascript.jscomp.graph">GraphNode</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#createNode(N)">createNode</A></B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets a node from the graph given a value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#disconnect(N, N)">disconnect</A></B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disconnects two nodes in the graph by removing all edges between them.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.GraphEdge.html" title="interface in com.google.javascript.jscomp.graph">Graph.GraphEdge</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#getEdges()">getEdges</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets an immutable list of all edges.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.GraphEdge.html" title="interface in com.google.javascript.jscomp.graph">Graph.GraphEdge</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#getEdges(N, N)">getEdges</A></B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retrieves an edge from the graph.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.GraphEdge.html" title="interface in com.google.javascript.jscomp.graph">Graph.GraphEdge</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#getFirstEdge(N, N)">getFirstEdge</A></B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retrieves any edge from the graph.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/GraphNode.html" title="interface in com.google.javascript.jscomp.graph">GraphNode</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#getNeighborNodes(N)">getNeighborNodes</A></B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the neighboring nodes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/GraphNode.html" title="interface in com.google.javascript.jscomp.graph">GraphNode</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#getNeighborNodesIterator(N)">getNeighborNodesIterator</A></B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#getNodeDegree(N)">getNodeDegree</A></B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the degree of a node.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/GraphNode.html" title="interface in com.google.javascript.jscomp.graph">GraphNode</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#getNodes()">getNodes</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets an immutable list of all nodes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#getWeight(N)">getWeight</A></B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a weight for the given value to be used in ordering nodes, e.g.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#hasNode(N)">hasNode</A></B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks whether the node exists in the graph (<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#createNode(N)"><CODE>createNode(Object)</CODE></A>
has been called with that value).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#isConnected(N, E, N)">isConnected</A></B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&nbsp;e,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks whether two nodes in the graph are connected by the given
edge type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#isConnected(N, N)">isConnected</A></B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks whether two nodes in the graph are connected.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#popEdgeAnnotations()">popEdgeAnnotations</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restores edges' annotation values to state before last
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#pushEdgeAnnotations()"><CODE>pushEdgeAnnotations()</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#popNodeAnnotations()">popNodeAnnotations</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restores nodes' annotation values to state before last
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#pushNodeAnnotations()"><CODE>pushNodeAnnotations()</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#pushEdgeAnnotations()">pushEdgeAnnotations</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pushes edges' annotation values.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#pushNodeAnnotations()">pushNodeAnnotations</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pushes nodes' annotation values.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_com.google.javascript.jscomp.graph.AdjacencyGraph"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from interface com.google.javascript.jscomp.graph.<A HREF="../../../../../com/google/javascript/jscomp/graph/AdjacencyGraph.html" title="interface in com.google.javascript.jscomp.graph">AdjacencyGraph</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../com/google/javascript/jscomp/graph/AdjacencyGraph.html#getNode(N)">getNode</A>, <A HREF="../../../../../com/google/javascript/jscomp/graph/AdjacencyGraph.html#newSubGraph()">newSubGraph</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="Graph()"><!-- --></A><H3>
Graph</H3>
<PRE>
public <B>Graph</B>()</PRE>
<DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="connect(java.lang.Object,java.lang.Object,java.lang.Object)"><!-- --></A><A NAME="connect(N, E, N)"><!-- --></A><H3>
connect</H3>
<PRE>
public abstract void <B>connect</B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&nbsp;edge,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</PRE>
<DL>
<DD>Connects two nodes in the graph with an edge.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>n1</CODE> - First node.<DD><CODE>edge</CODE> - The edge.<DD><CODE>n2</CODE> - Second node.</DL>
</DD>
</DL>
<HR>
<A NAME="disconnect(java.lang.Object,java.lang.Object)"><!-- --></A><A NAME="disconnect(N, N)"><!-- --></A><H3>
disconnect</H3>
<PRE>
public abstract void <B>disconnect</B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</PRE>
<DL>
<DD>Disconnects two nodes in the graph by removing all edges between them.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>n1</CODE> - First node.<DD><CODE>n2</CODE> - Second node.</DL>
</DD>
</DL>
<HR>
<A NAME="connectIfNotFound(java.lang.Object,java.lang.Object,java.lang.Object)"><!-- --></A><A NAME="connectIfNotFound(N, E, N)"><!-- --></A><H3>
connectIfNotFound</H3>
<PRE>
public final void <B>connectIfNotFound</B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&nbsp;edge,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</PRE>
<DL>
<DD>Connects two nodes in the graph with an edge if such edge does not already
exists between the nodes.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>n1</CODE> - First node.<DD><CODE>edge</CODE> - The edge.<DD><CODE>n2</CODE> - Second node.</DL>
</DD>
</DL>
<HR>
<A NAME="createNode(java.lang.Object)"><!-- --></A><A NAME="createNode(N)"><!-- --></A><H3>
createNode</H3>
<PRE>
public abstract <A HREF="../../../../../com/google/javascript/jscomp/graph/GraphNode.html" title="interface in com.google.javascript.jscomp.graph">GraphNode</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt; <B>createNode</B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;value)</PRE>
<DL>
<DD>Gets a node from the graph given a value. New nodes are created if that
value has not been assigned a graph node. Values equality are compared
using <code>Object.equals</code>.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - The node's value.
<DT><B>Returns:</B><DD>The corresponding node in the graph.</DL>
</DD>
</DL>
<HR>
<A NAME="getNodes()"><!-- --></A><H3>
getNodes</H3>
<PRE>
public abstract <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/GraphNode.html" title="interface in com.google.javascript.jscomp.graph">GraphNode</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;&gt; <B>getNodes</B>()</PRE>
<DL>
<DD>Gets an immutable list of all nodes.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/google/javascript/jscomp/graph/AdjacencyGraph.html#getNodes()">getNodes</A></CODE> in interface <CODE><A HREF="../../../../../com/google/javascript/jscomp/graph/AdjacencyGraph.html" title="interface in com.google.javascript.jscomp.graph">AdjacencyGraph</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getEdges()"><!-- --></A><H3>
getEdges</H3>
<PRE>
public abstract <A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.GraphEdge.html" title="interface in com.google.javascript.jscomp.graph">Graph.GraphEdge</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;&gt; <B>getEdges</B>()</PRE>
<DL>
<DD>Gets an immutable list of all edges.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getNodeDegree(java.lang.Object)"><!-- --></A><A NAME="getNodeDegree(N)"><!-- --></A><H3>
getNodeDegree</H3>
<PRE>
public abstract int <B>getNodeDegree</B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;value)</PRE>
<DL>
<DD>Gets the degree of a node.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - The node's value.
<DT><B>Returns:</B><DD>The degree of the node.</DL>
</DD>
</DL>
<HR>
<A NAME="getWeight(java.lang.Object)"><!-- --></A><A NAME="getWeight(N)"><!-- --></A><H3>
getWeight</H3>
<PRE>
public int <B>getWeight</B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;value)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/google/javascript/jscomp/graph/AdjacencyGraph.html#getWeight(N)">AdjacencyGraph</A></CODE></B></DD>
<DD>Returns a weight for the given value to be used in ordering nodes, e.g.
in <A HREF="../../../../../com/google/javascript/jscomp/graph/GraphColoring.html" title="class in com.google.javascript.jscomp.graph"><CODE>GraphColoring</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/google/javascript/jscomp/graph/AdjacencyGraph.html#getWeight(N)">getWeight</A></CODE> in interface <CODE><A HREF="../../../../../com/google/javascript/jscomp/graph/AdjacencyGraph.html" title="interface in com.google.javascript.jscomp.graph">AdjacencyGraph</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getNeighborNodes(java.lang.Object)"><!-- --></A><A NAME="getNeighborNodes(N)"><!-- --></A><H3>
getNeighborNodes</H3>
<PRE>
public abstract <A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/GraphNode.html" title="interface in com.google.javascript.jscomp.graph">GraphNode</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;&gt; <B>getNeighborNodes</B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;value)</PRE>
<DL>
<DD>Gets the neighboring nodes.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - The node's value.
<DT><B>Returns:</B><DD>A list of neighboring nodes.</DL>
</DD>
</DL>
<HR>
<A NAME="getNeighborNodesIterator(java.lang.Object)"><!-- --></A><A NAME="getNeighborNodesIterator(N)"><!-- --></A><H3>
getNeighborNodesIterator</H3>
<PRE>
public abstract <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/GraphNode.html" title="interface in com.google.javascript.jscomp.graph">GraphNode</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;&gt; <B>getNeighborNodesIterator</B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;value)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getEdges(java.lang.Object,java.lang.Object)"><!-- --></A><A NAME="getEdges(N, N)"><!-- --></A><H3>
getEdges</H3>
<PRE>
public abstract <A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.GraphEdge.html" title="interface in com.google.javascript.jscomp.graph">Graph.GraphEdge</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;&gt; <B>getEdges</B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</PRE>
<DL>
<DD>Retrieves an edge from the graph.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>n1</CODE> - Node one.<DD><CODE>n2</CODE> - Node two.
<DT><B>Returns:</B><DD>The list of edges between those two values in the graph.</DL>
</DD>
</DL>
<HR>
<A NAME="getFirstEdge(java.lang.Object,java.lang.Object)"><!-- --></A><A NAME="getFirstEdge(N, N)"><!-- --></A><H3>
getFirstEdge</H3>
<PRE>
public abstract <A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.GraphEdge.html" title="interface in com.google.javascript.jscomp.graph">Graph.GraphEdge</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt; <B>getFirstEdge</B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</PRE>
<DL>
<DD>Retrieves any edge from the graph.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>n1</CODE> - Node one.<DD><CODE>n2</CODE> - Node two.
<DT><B>Returns:</B><DD>The first edges between those two values in the graph. null if
there are none.</DL>
</DD>
</DL>
<HR>
<A NAME="hasNode(java.lang.Object)"><!-- --></A><A NAME="hasNode(N)"><!-- --></A><H3>
hasNode</H3>
<PRE>
public final boolean <B>hasNode</B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n)</PRE>
<DL>
<DD>Checks whether the node exists in the graph (<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#createNode(N)"><CODE>createNode(Object)</CODE></A>
has been called with that value).
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>n</CODE> - Node.
<DT><B>Returns:</B><DD><code>true</code> if it exist.</DL>
</DD>
</DL>
<HR>
<A NAME="isConnected(java.lang.Object,java.lang.Object)"><!-- --></A><A NAME="isConnected(N, N)"><!-- --></A><H3>
isConnected</H3>
<PRE>
public abstract boolean <B>isConnected</B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</PRE>
<DL>
<DD>Checks whether two nodes in the graph are connected.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>n1</CODE> - Node 1.<DD><CODE>n2</CODE> - Node 2.
<DT><B>Returns:</B><DD><code>true</code> if the two nodes are connected.</DL>
</DD>
</DL>
<HR>
<A NAME="isConnected(java.lang.Object,java.lang.Object,java.lang.Object)"><!-- --></A><A NAME="isConnected(N, E, N)"><!-- --></A><H3>
isConnected</H3>
<PRE>
public abstract boolean <B>isConnected</B>(<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n1,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&nbsp;e,
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>&nbsp;n2)</PRE>
<DL>
<DD>Checks whether two nodes in the graph are connected by the given
edge type.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>n1</CODE> - Node 1.<DD><CODE>e</CODE> - The edge type.<DD><CODE>n2</CODE> - Node 2.</DL>
</DD>
</DL>
<HR>
<A NAME="clearNodeAnnotations()"><!-- --></A><H3>
clearNodeAnnotations</H3>
<PRE>
public final void <B>clearNodeAnnotations</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/google/javascript/jscomp/graph/AdjacencyGraph.html#clearNodeAnnotations()">AdjacencyGraph</A></CODE></B></DD>
<DD>Makes each node's annotation null.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/google/javascript/jscomp/graph/AdjacencyGraph.html#clearNodeAnnotations()">clearNodeAnnotations</A></CODE> in interface <CODE><A HREF="../../../../../com/google/javascript/jscomp/graph/AdjacencyGraph.html" title="interface in com.google.javascript.jscomp.graph">AdjacencyGraph</A>&lt;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">N</A>,<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html" title="type parameter in Graph">E</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="clearEdgeAnnotations()"><!-- --></A><H3>
clearEdgeAnnotations</H3>
<PRE>
public final void <B>clearEdgeAnnotations</B>()</PRE>
<DL>
<DD>Makes each edge's annotation null.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="pushNodeAnnotations()"><!-- --></A><H3>
pushNodeAnnotations</H3>
<PRE>
public final void <B>pushNodeAnnotations</B>()</PRE>
<DL>
<DD>Pushes nodes' annotation values. Restored with
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#popNodeAnnotations()"><CODE>popNodeAnnotations()</CODE></A>. Nodes' annotation values are cleared.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="popNodeAnnotations()"><!-- --></A><H3>
popNodeAnnotations</H3>
<PRE>
public final void <B>popNodeAnnotations</B>()</PRE>
<DL>
<DD>Restores nodes' annotation values to state before last
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#pushNodeAnnotations()"><CODE>pushNodeAnnotations()</CODE></A>.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="pushEdgeAnnotations()"><!-- --></A><H3>
pushEdgeAnnotations</H3>
<PRE>
public final void <B>pushEdgeAnnotations</B>()</PRE>
<DL>
<DD>Pushes edges' annotation values. Restored with
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#popEdgeAnnotations()"><CODE>popEdgeAnnotations()</CODE></A>. Edges' annotation values are cleared.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="popEdgeAnnotations()"><!-- --></A><H3>
popEdgeAnnotations</H3>
<PRE>
public final void <B>popEdgeAnnotations</B>()</PRE>
<DL>
<DD>Restores edges' annotation values to state before last
<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.html#pushEdgeAnnotations()"><CODE>pushEdgeAnnotations()</CODE></A>.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../com/google/javascript/jscomp/graph/FixedPointGraphTraversal.EdgeCallback.html" title="interface in com.google.javascript.jscomp.graph"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../com/google/javascript/jscomp/graph/Graph.GraphEdge.html" title="interface in com.google.javascript.jscomp.graph"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?com/google/javascript/jscomp/graph/Graph.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="Graph.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
<div id="footer">
<div id="footerlogo">
<img src="http://www.google.com/images/art.gif"
alt="Google colored balls">
</div>
<div id="copyright">
<p>&copy; 2009 Google -
<a href="http://www.google.com/privacy.html">Privacy Policy</a> -
<a href="http://www.google.com/terms_of_service.html">Terms and Conditions</a> -
<a href="http://www.google.com/about.html">About Google</a>
</p>
</div>
</div>
</BODY>
</HTML>