blob: d63d788312c659e2ce64dc012f994d849309cf1c [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 May 18 03:56:40 EDT 2015 -->
<title>ProximityEObjectMatcher (EMF Compare API Specification)</title>
<meta name="date" content="2015-05-18">
<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="ProximityEObjectMatcher (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/ProximityEObjectMatcher.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.201505180755</span></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/eclipse/emf/compare/match/eobject/IEObjectMatcher.html" title="interface in org.eclipse.emf.compare.match.eobject"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/eclipse/emf/compare/match/eobject/ProximityEObjectMatcher.DistanceFunction.html" title="interface in org.eclipse.emf.compare.match.eobject"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/eclipse/emf/compare/match/eobject/ProximityEObjectMatcher.html" target="_top">Frames</a></li>
<li><a href="ProximityEObjectMatcher.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><a href="#nested_class_summary">Nested</a>&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.match.eobject</div>
<h2 title="Class ProximityEObjectMatcher" class="title">Class ProximityEObjectMatcher</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.match.eobject.ProximityEObjectMatcher</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../org/eclipse/emf/compare/match/eobject/IEObjectMatcher.html" title="interface in org.eclipse.emf.compare.match.eobject">IEObjectMatcher</a>, <a href="../../../../../../org/eclipse/emf/compare/match/eobject/ScopeQuery.html" title="interface in org.eclipse.emf.compare.match.eobject">ScopeQuery</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">ProximityEObjectMatcher</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>
implements <a href="../../../../../../org/eclipse/emf/compare/match/eobject/IEObjectMatcher.html" title="interface in org.eclipse.emf.compare.match.eobject">IEObjectMatcher</a>, <a href="../../../../../../org/eclipse/emf/compare/match/eobject/ScopeQuery.html" title="interface in org.eclipse.emf.compare.match.eobject">ScopeQuery</a></pre>
<div class="block">This matcher is using a distance function to match EObject. It guarantees that elements are matched with
the other EObject having the lowest distance. If two elements have the same distance regarding the other
EObject it will arbitrary pick one. (You should probably not rely on this and make sure your distance only
return 0 if both EObject have the very same content). The matcher will try to use the fact that it is a
distance to achieve a suitable scalability. It is also build on the following assumptions :
<ul>
<li>Most EObjects have no difference and have their corresponding EObject on the other sides of the model
(right and origins)</li>
<li>Two consecutive calls on the distance function with the same parameters will give the same distance.</li>
</ul>
The scalability you'll get will highly depend on the complexity of the distance function. The
implementation is not caching any distance result from two EObjects.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/match/eobject/ProximityEObjectMatcher.DistanceFunction.html" title="interface in org.eclipse.emf.compare.match.eobject">ProximityEObjectMatcher.DistanceFunction</a></strong></code>
<div class="block">This represent a distance function used by the <a href="../../../../../../org/eclipse/emf/compare/match/eobject/ProximityEObjectMatcher.html" title="class in org.eclipse.emf.compare.match.eobject"><code>ProximityEObjectMatcher</code></a> to compare EObjects and
retrieve the closest EObject from one side to another.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== 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/match/eobject/ProximityEObjectMatcher.html#ProximityEObjectMatcher(org.eclipse.emf.compare.match.eobject.ProximityEObjectMatcher.DistanceFunction)">ProximityEObjectMatcher</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/match/eobject/ProximityEObjectMatcher.DistanceFunction.html" title="interface in org.eclipse.emf.compare.match.eobject">ProximityEObjectMatcher.DistanceFunction</a>&nbsp;meter)</code>
<div class="block">Create the matcher using the given distance function.</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>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/match/eobject/ProximityEObjectMatcher.html#createMatches(org.eclipse.emf.compare.Comparison,%20java.util.Iterator,%20java.util.Iterator,%20java.util.Iterator,%20org.eclipse.emf.common.util.Monitor)">createMatches</a></strong>(<a href="../../../../../../org/eclipse/emf/compare/Comparison.html" title="interface in org.eclipse.emf.compare">Comparison</a>&nbsp;comparison,
<a href="http://download.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;? extends <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore">EObject</a>&gt;&nbsp;leftEObjects,
<a href="http://download.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;? extends <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore">EObject</a>&gt;&nbsp;rightEObjects,
<a href="http://download.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;? extends <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore">EObject</a>&gt;&nbsp;originEObjects,
<a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/common/util/Monitor.html?is-external=true" title="class or interface in org.eclipse.emf.common.util">Monitor</a>&nbsp;monitor)</code>
<div class="block">This will be called by the match engine to determine matches between EObjects.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/eclipse/emf/compare/match/eobject/ProximityEObjectMatcher.html#isInScope(org.eclipse.emf.ecore.EObject)">isInScope</a></strong>(<a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore">EObject</a>&nbsp;eContainer)</code>
<div class="block">Check whether the object is in the scope or not.</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="ProximityEObjectMatcher(org.eclipse.emf.compare.match.eobject.ProximityEObjectMatcher.DistanceFunction)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ProximityEObjectMatcher</h4>
<pre>public&nbsp;ProximityEObjectMatcher(<a href="../../../../../../org/eclipse/emf/compare/match/eobject/ProximityEObjectMatcher.DistanceFunction.html" title="interface in org.eclipse.emf.compare.match.eobject">ProximityEObjectMatcher.DistanceFunction</a>&nbsp;meter)</pre>
<div class="block">Create the matcher using the given distance function.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>meter</code> - a function to measure the distance between two <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore"><code>EObject</code></a>s.</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="createMatches(org.eclipse.emf.compare.Comparison, java.util.Iterator, java.util.Iterator, java.util.Iterator, org.eclipse.emf.common.util.Monitor)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createMatches</h4>
<pre>public&nbsp;void&nbsp;createMatches(<a href="../../../../../../org/eclipse/emf/compare/Comparison.html" title="interface in org.eclipse.emf.compare">Comparison</a>&nbsp;comparison,
<a href="http://download.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;? extends <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore">EObject</a>&gt;&nbsp;leftEObjects,
<a href="http://download.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;? extends <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore">EObject</a>&gt;&nbsp;rightEObjects,
<a href="http://download.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;? extends <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore">EObject</a>&gt;&nbsp;originEObjects,
<a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/common/util/Monitor.html?is-external=true" title="class or interface in org.eclipse.emf.common.util">Monitor</a>&nbsp;monitor)</pre>
<div class="block">This will be called by the match engine to determine matches between EObjects.
<p>
The implementation should update the given comparison object by adding the Matches it detect. These
matches should include both matching and unmatchings EObjects (i.e. EObjects that can be matched in all
three lists, EObjects that cna be matched in only two of the three lists, and EObjects that can only be
found in one of the three.
</p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/eclipse/emf/compare/match/eobject/IEObjectMatcher.html#createMatches(org.eclipse.emf.compare.Comparison,%20java.util.Iterator,%20java.util.Iterator,%20java.util.Iterator,%20org.eclipse.emf.common.util.Monitor)">createMatches</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/eclipse/emf/compare/match/eobject/IEObjectMatcher.html" title="interface in org.eclipse.emf.compare.match.eobject">IEObjectMatcher</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>comparison</code> - the comparison to update.</dd><dd><code>leftEObjects</code> - An iterator over the EObjects that could be found in the left side.</dd><dd><code>rightEObjects</code> - An iterator over the EObjects that could be found in the right side.</dd><dd><code>originEObjects</code> - And iterator over the EObject that may be considered ancestors of the couples that can be
detected in the left and right sides.</dd><dd><code>monitor</code> - The monitor to report progress or to check for cancellation</dd></dl>
</li>
</ul>
<a name="isInScope(org.eclipse.emf.ecore.EObject)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isInScope</h4>
<pre>public&nbsp;boolean&nbsp;isInScope(<a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore">EObject</a>&nbsp;eContainer)</pre>
<div class="block">Check whether the object is in the scope or not.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/eclipse/emf/compare/match/eobject/ScopeQuery.html#isInScope(org.eclipse.emf.ecore.EObject)">isInScope</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/eclipse/emf/compare/match/eobject/ScopeQuery.html" title="interface in org.eclipse.emf.compare.match.eobject">ScopeQuery</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>eContainer</code> - any EObject.</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the Object is in scope. False otherwise.</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/ProximityEObjectMatcher.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.201505180755</span></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/eclipse/emf/compare/match/eobject/IEObjectMatcher.html" title="interface in org.eclipse.emf.compare.match.eobject"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/eclipse/emf/compare/match/eobject/ProximityEObjectMatcher.DistanceFunction.html" title="interface in org.eclipse.emf.compare.match.eobject"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/eclipse/emf/compare/match/eobject/ProximityEObjectMatcher.html" target="_top">Frames</a></li>
<li><a href="ProximityEObjectMatcher.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><a href="#nested_class_summary">Nested</a>&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>