blob: 5b1f2664452e1c00fe664a5df914c4cfa6529981 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_75) on Mon Jun 08 05:48:07 EDT 2015 -->
<title>Graph (EMF Compare API Specification)</title>
<meta name="date" content="2015-06-08">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Graph (EMF Compare API Specification)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Graph.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><span style='font-size:small'><b>EMF Compare</b><br>3.2.0.201506080946</span></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/eclipse/emf/compare/internal/utils/DiffUtil.html" title="class in org.eclipse.emf.compare.internal.utils"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/eclipse/emf/compare/internal/utils/PruningIterator.html" title="interface in org.eclipse.emf.compare.internal.utils"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/eclipse/emf/compare/internal/utils/Graph.html" target="_top">Frames</a></li>
<li><a href="Graph.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.emf.compare.internal.utils</div>
<h2 title="Class Graph" class="title">Class Graph&lt;E&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://download.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.emf.compare.internal.utils.Graph&lt;E&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>E</code> - Kind of elements used as this graph's nodes.</dd></dl>
<hr>
<br>
<pre>public class <span class="strong">Graph&lt;E&gt;</span>
extends <a href="http://download.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">This structure will be used to maintain a undirected graph of elements.
<p>
This boils down to maintaining a list of children and parents of each node, updating them in sync with each
other.
</p>
<p>
Take note that the elements of this graph are not necessarily all connected together. This can be used to
represent a set of trees, a set of undirected graphs, a set of roots with no children...
</p>
<p>
This class is not intended to be sub-classed.
</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#Graph()">Graph</a></strong>()</code>
<div class="block">Constructs an empty graph.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#add(E)">add</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element)</code>
<div class="block">Adds a new element to this graph, if it does not exists yet.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#addChildren(E,%20java.util.Set)">addChildren</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element,
<a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;newChildren)</code>
<div class="block">Connects the given set of elements to a given parent.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#addParentData(E,%20E)">addParentData</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element,
<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;parentData)</code>
<div class="block">Set the parent data for the given element.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/eclipse/emf/compare/internal/utils/PruningIterator.html" title="interface in org.eclipse.emf.compare.internal.utils">PruningIterator</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#breadthFirstIterator()">breadthFirstIterator</a></strong>()</code>
<div class="block">Returns a breadth-first iterator over this whole graph.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#clear()">clear</a></strong>()</code>
<div class="block">Clears this graph and goes back to a pristine state.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#contains(E)">contains</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element)</code>
<div class="block">Checks whether this graph already contains the given element.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#getDirectParents(E)">getDirectParents</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element)</code>
<div class="block">Returns the <u>direct</u> parents of the given <code>element</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#getParentData(E)">getParentData</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element)</code>
<div class="block">Get the parent data of the given element.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#getSubgraphContaining(E)">getSubgraphContaining</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element)</code>
<div class="block">Returns the set of all elements of the subgraph containing the given element.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#getSubgraphContaining(E,%20java.util.Set)">getSubgraphContaining</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element,
<a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;endPoints)</code>
<div class="block">Returns the set of all elements of the subgraph containing the given element and ending at the given
boundaries.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#getTreeFrom(E)">getTreeFrom</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;root)</code>
<div class="block">Returns the tree starting from the given root element if it is contained in the graph.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#getTreeFrom(E,%20java.util.Set)">getTreeFrom</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;root,
<a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;endPoints)</code>
<div class="block">Returns the tree starting from the given root element and ending at the given boundaries..</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#hasChild(E,%20E)">hasChild</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;parent,
<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;potentialChild)</code>
<div class="block">Checks if the given element is a parent of the given potential child, directly or not.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#remove(E)">remove</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element)</code>
<div class="block">Removes the given element's node from this graph.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#removeAll(java.util.Collection)">removeAll</a></strong>(<a href="http://download.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;elements)</code>
<div class="block">Removes the given elements' nodes from this graph.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://download.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://download.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://download.oracle.com/javase/8/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://download.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://download.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://download.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://download.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://download.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://download.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://download.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://download.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://download.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Graph()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Graph</h4>
<pre>public&nbsp;Graph()</pre>
<div class="block">Constructs an empty graph.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="contains(java.lang.Object)">
<!-- -->
</a><a name="contains(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contains</h4>
<pre>public&nbsp;boolean&nbsp;contains(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element)</pre>
<div class="block">Checks whether this graph already contains the given element.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>element</code> - Element we need to check.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>true</code> if this graph already contains the given elment, <code>false</code>
otherwise.</dd></dl>
</li>
</ul>
<a name="clear()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
<pre>public&nbsp;void&nbsp;clear()</pre>
<div class="block">Clears this graph and goes back to a pristine state.</div>
</li>
</ul>
<a name="add(java.lang.Object)">
<!-- -->
</a><a name="add(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
<pre>public&nbsp;boolean&nbsp;add(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element)</pre>
<div class="block">Adds a new element to this graph, if it does not exists yet. Elements will initially have no connection
to other elements, and can thus be considered "roots" of the graph.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>element</code> - The element to add as a new root to this graph.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>true</code> if this element did not previously exist in the graph.</dd></dl>
</li>
</ul>
<a name="remove(java.lang.Object)">
<!-- -->
</a><a name="remove(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre>public&nbsp;void&nbsp;remove(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element)</pre>
<div class="block">Removes the given element's node from this graph. This will effectively break all connections to that
node.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>element</code> - The element which is to be removed from this graph.</dd></dl>
</li>
</ul>
<a name="removeAll(java.util.Collection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAll</h4>
<pre>public&nbsp;void&nbsp;removeAll(<a href="http://download.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;elements)</pre>
<div class="block">Removes the given elements' nodes from this graph. This will effectively break all connections to these
nodes.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>elements</code> - The elements which are to be removed from this graph.</dd></dl>
</li>
</ul>
<a name="addChildren(java.lang.Object,java.util.Set)">
<!-- -->
</a><a name="addChildren(E, java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addChildren</h4>
<pre>public&nbsp;void&nbsp;addChildren(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element,
<a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;newChildren)</pre>
<div class="block">Connects the given set of elements to a given parent. Note that nodes will be created for all new
elements if they do not exist yet.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>element</code> - The element that is to be connected with new children.</dd><dd><code>newChildren</code> - The set of elements to connect to the given parent.</dd></dl>
</li>
</ul>
<a name="hasChild(java.lang.Object,java.lang.Object)">
<!-- -->
</a><a name="hasChild(E, E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasChild</h4>
<pre>public&nbsp;boolean&nbsp;hasChild(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;parent,
<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;potentialChild)</pre>
<div class="block">Checks if the given element is a parent of the given potential child, directly or not.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>parent</code> - Element that could be a parent of <code>potentialChild</code>.</dd><dd><code>potentialChild</code> - The potential child of <code>parent</code>.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>true</code> if <code>parent</code> is an ancestor of <code>potentialChild</code>.</dd></dl>
</li>
</ul>
<a name="getDirectParents(java.lang.Object)">
<!-- -->
</a><a name="getDirectParents(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDirectParents</h4>
<pre>public&nbsp;<a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;getDirectParents(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element)</pre>
<div class="block">Returns the <u>direct</u> parents of the given <code>element</code>.
<p>
<b>Note</b> that the returned set is a view over a sub-graph of this graph, and that changes to it will
not be reflected within the graph itself.
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>element</code> - The element which parents we seek.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The set of <u>direct</u> parents for the given <code>element</code>.</dd></dl>
</li>
</ul>
<a name="getTreeFrom(java.lang.Object)">
<!-- -->
</a><a name="getTreeFrom(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTreeFrom</h4>
<pre>public&nbsp;<a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;getTreeFrom(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;root)</pre>
<div class="block">Returns the tree starting from the given root element if it is contained in the graph.
<p>
Contrarily to <a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#getSubgraphContaining(E)"><code>getSubgraphContaining(Object)</code></a>, this will only iterate over the children (and
recursively) of the given node, without ever "going up" to parents of these children.
</p>
<p>
<b>Note</b> that the returned set is a view over a sub-graph of this graph, and that changes to it will
not be reflected within the graph itself.
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>root</code> - The element we are to consider as the root of a tree.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The tree starting from the given root element if it is contained in this graph, and empty set
otherwise.</dd></dl>
</li>
</ul>
<a name="getTreeFrom(java.lang.Object,java.util.Set)">
<!-- -->
</a><a name="getTreeFrom(E, java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTreeFrom</h4>
<pre>public&nbsp;<a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;getTreeFrom(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;root,
<a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;endPoints)</pre>
<div class="block">Returns the tree starting from the given root element and ending at the given boundaries..
<p>
Contrarily to <a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html#getSubgraphContaining(E,%20java.util.Set)"><code>getSubgraphContaining(Object, Set)</code></a>, this will only iterate over the children
(and recursively) of the given node, without ever "going up" to parents of these children.
</p>
<p>
<b>Note</b> that the returned set is a view over a sub-graph of this graph, and that changes to it will
not be reflected within the graph itself.
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>root</code> - The element we are to consider as the root of a tree.</dd><dd><code>endPoints</code> - Boundaries of the tree.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The tree starting from the given root element if it is contained in this graph, and empty set
otherwise.</dd></dl>
</li>
</ul>
<a name="getSubgraphContaining(java.lang.Object)">
<!-- -->
</a><a name="getSubgraphContaining(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSubgraphContaining</h4>
<pre>public&nbsp;<a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;getSubgraphContaining(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element)</pre>
<div class="block">Returns the set of all elements of the subgraph containing the given element.
<p>
<b>Note</b> that the returned set is a view over a sub-graph of this graph, and that changes to it will
not be reflected within the graph itself.
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>element</code> - Element we need the subgraph of.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The set of all elements of the subgraph containing the given element, an empty set if that
element is not present in this graph.</dd></dl>
</li>
</ul>
<a name="getSubgraphContaining(java.lang.Object,java.util.Set)">
<!-- -->
</a><a name="getSubgraphContaining(E, java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSubgraphContaining</h4>
<pre>public&nbsp;<a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;getSubgraphContaining(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element,
<a href="http://download.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;endPoints)</pre>
<div class="block">Returns the set of all elements of the subgraph containing the given element and ending at the given
boundaries.
<p>
<b>Note</b> that the returned set is a view over a sub-graph of this graph, and that changes to it will
not be reflected within the graph itself.
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>element</code> - Element we need the subgraph of.</dd><dd><code>endPoints</code> - Boundaries of the needed subgraph.</dd>
<dt><span class="strong">Returns:</span></dt><dd>An iterable over all elements of the subgraph containing the given element, an empty set if
that element is not present in this graph.</dd></dl>
</li>
</ul>
<a name="breadthFirstIterator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>breadthFirstIterator</h4>
<pre>public&nbsp;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/PruningIterator.html" title="interface in org.eclipse.emf.compare.internal.utils">PruningIterator</a>&lt;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&gt;&nbsp;breadthFirstIterator()</pre>
<div class="block">Returns a breadth-first iterator over this whole graph. This will begin iteration on this graph's roots
(whether they are linked together (directly or indirectly) or not), then carry on over each depth
level. This will never visit the same element twice, nor will it ever visit an element which parents
haven't all been iterated over yet.
<p>
The returned iterator does not support removal, and will fail or returned undefined results if this
graph is modified after the iterator's creation.
</p></div>
<dl><dt><span class="strong">Returns:</span></dt><dd>A breadth-first iterator over this whole graph.</dd></dl>
</li>
</ul>
<a name="getParentData(java.lang.Object)">
<!-- -->
</a><a name="getParentData(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParentData</h4>
<pre>public&nbsp;<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;getParentData(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element)</pre>
<div class="block">Get the parent data of the given element.
<p>
The parent data, is the URI of the parent resource's object in case of a containment relationship
between the given element and its parent.
<p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>element</code> - Element we need the parent data of.</dd>
<dt><span class="strong">Returns:</span></dt><dd>A parent data of type <code>E</code> if this element has a parent data, <code>null</code>
otherwise.</dd></dl>
</li>
</ul>
<a name="addParentData(java.lang.Object,java.lang.Object)">
<!-- -->
</a><a name="addParentData(E, E)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>addParentData</h4>
<pre>public&nbsp;void&nbsp;addParentData(<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;element,
<a href="../../../../../../org/eclipse/emf/compare/internal/utils/Graph.html" title="type parameter in Graph">E</a>&nbsp;parentData)</pre>
<div class="block">Set the parent data for the given element.
<p>
The parent data, is the URI of the parent resource's object in case of a containment relationship
between the given element and its parent.
</p>
If the given element has several parents, then the addition of a new parent data results in delete the
parent data. If the given element has no parents, then the addition of a new parent data results in
delete the parent data.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>element</code> - Element for which we need to set the parent data.</dd><dd><code>parentData</code> - The parent data to set.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Graph.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><span style='font-size:small'><b>EMF Compare</b><br>3.2.0.201506080946</span></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/eclipse/emf/compare/internal/utils/DiffUtil.html" title="class in org.eclipse.emf.compare.internal.utils"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/eclipse/emf/compare/internal/utils/PruningIterator.html" title="interface in org.eclipse.emf.compare.internal.utils"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/eclipse/emf/compare/internal/utils/Graph.html" target="_top">Frames</a></li>
<li><a href="Graph.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><br><span style='font-size:small;float:right'>Copyright (c) 2006, 2014 Obeo and others. All rights reserved.</span></small></p>
</body>
</html>