blob: e5bf62cdd989e230952625344a106583b41b503a [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:08 EDT 2015 -->
<title>ReferenceChangeMerger (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="ReferenceChangeMerger (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/ReferenceChangeMerger.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/merge/PseudoConflictMerger.html" title="class in org.eclipse.emf.compare.merge"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/eclipse/emf/compare/merge/ResourceAttachmentChangeMerger.html" title="class in org.eclipse.emf.compare.merge"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/emf/compare/merge/ReferenceChangeMerger.html" target="_top">Frames</a></li>
<li><a href="ReferenceChangeMerger.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.merge</div>
<h2 title="Class ReferenceChangeMerger" class="title">Class ReferenceChangeMerger</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><a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html" title="class in org.eclipse.emf.compare.merge">org.eclipse.emf.compare.merge.AbstractMerger</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.emf.compare.merge.ReferenceChangeMerger</li>
</ul>
</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/merge/IMerger.html" title="interface in org.eclipse.emf.compare.merge">IMerger</a>, <a href="../../../../../org/eclipse/emf/compare/merge/IMerger2.html" title="interface in org.eclipse.emf.compare.merge">IMerger2</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">ReferenceChangeMerger</span>
extends <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html" title="class in org.eclipse.emf.compare.merge">AbstractMerger</a></pre>
<div class="block">This specific implementation of <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html" title="class in org.eclipse.emf.compare.merge"><code>AbstractMerger</code></a> will be used to merge reference changes.</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>
<ul class="blockList">
<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.emf.compare.merge.IMerger">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.emf.compare.merge.<a href="../../../../../org/eclipse/emf/compare/merge/IMerger.html" title="interface in org.eclipse.emf.compare.merge">IMerger</a></h3>
<code><a href="../../../../../org/eclipse/emf/compare/merge/IMerger.Registry.html" title="interface in org.eclipse.emf.compare.merge">IMerger.Registry</a>, <a href="../../../../../org/eclipse/emf/compare/merge/IMerger.RegistryImpl.html" title="class in org.eclipse.emf.compare.merge">IMerger.RegistryImpl</a></code></li>
</ul>
</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/merge/ReferenceChangeMerger.html#ReferenceChangeMerger()">ReferenceChangeMerger</a></strong>()</code>&nbsp;</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>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/eclipse/emf/compare/merge/ReferenceChangeMerger.html#accept(org.eclipse.emf.compare.Diff,%20boolean)">accept</a></strong>(<a href="../../../../../org/eclipse/emf/compare/Diff.html" title="interface in org.eclipse.emf.compare">Diff</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</code>
<div class="block">Merge the given difference accepting it.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/eclipse/emf/compare/merge/ReferenceChangeMerger.html#addInTarget(org.eclipse.emf.compare.ReferenceChange,%20boolean)">addInTarget</a></strong>(<a href="../../../../../org/eclipse/emf/compare/ReferenceChange.html" title="interface in org.eclipse.emf.compare">ReferenceChange</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</code>
<div class="block">This will be called when we need to create an element in the target side.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/eclipse/emf/compare/merge/ReferenceChangeMerger.html#checkImpliedDiffsOrdering(org.eclipse.emf.compare.ReferenceChange,%20boolean)">checkImpliedDiffsOrdering</a></strong>(<a href="../../../../../org/eclipse/emf/compare/ReferenceChange.html" title="interface in org.eclipse.emf.compare">ReferenceChange</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</code>
<div class="block">In the case of many-to-many eOpposite references, EMF will simply report the difference made on one
side of the equivalence to the other, without considering ordering in any way.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/eclipse/emf/compare/merge/ReferenceChangeMerger.html#doMove(org.eclipse.emf.compare.ReferenceChange,%20org.eclipse.emf.compare.Comparison,%20org.eclipse.emf.ecore.EObject,%20org.eclipse.emf.ecore.EObject,%20boolean)">doMove</a></strong>(<a href="../../../../../org/eclipse/emf/compare/ReferenceChange.html" title="interface in org.eclipse.emf.compare">ReferenceChange</a>&nbsp;diff,
<a href="../../../../../org/eclipse/emf/compare/Comparison.html" title="interface in org.eclipse.emf.compare">Comparison</a>&nbsp;comparison,
<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;expectedContainer,
<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;expectedValue,
boolean&nbsp;rightToLeft)</code>
<div class="block">This will do the actual work of moving the element into its reference.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/eclipse/emf/compare/merge/ReferenceChangeMerger.html#findInsertionIndex(org.eclipse.emf.compare.Comparison,%20org.eclipse.emf.compare.Diff,%20boolean)">findInsertionIndex</a></strong>(<a href="../../../../../org/eclipse/emf/compare/Comparison.html" title="interface in org.eclipse.emf.compare">Comparison</a>&nbsp;comparison,
<a href="../../../../../org/eclipse/emf/compare/Diff.html" title="interface in org.eclipse.emf.compare">Diff</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</code>
<div class="block">This will be used by the distinct merge actions in order to find the index at which a value should be
inserted in its target list.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <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></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/eclipse/emf/compare/merge/ReferenceChangeMerger.html#findMatchIn(org.eclipse.emf.compare.Comparison,%20java.util.List,%20org.eclipse.emf.ecore.EObject)">findMatchIn</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/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<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;list,
<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;element)</code>
<div class="block">Seeks a match of the given <code>element</code> in the given list, using the equality helper to find it.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/eclipse/emf/compare/merge/ReferenceChangeMerger.html#isMergerFor(org.eclipse.emf.compare.Diff)">isMergerFor</a></strong>(<a href="../../../../../org/eclipse/emf/compare/Diff.html" title="interface in org.eclipse.emf.compare">Diff</a>&nbsp;target)</code>
<div class="block">Check if the merger is a good candidate to merge the given difference.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/eclipse/emf/compare/merge/ReferenceChangeMerger.html#moveElement(org.eclipse.emf.compare.ReferenceChange,%20boolean)">moveElement</a></strong>(<a href="../../../../../org/eclipse/emf/compare/ReferenceChange.html" title="interface in org.eclipse.emf.compare">ReferenceChange</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</code>
<div class="block">This will be called when trying to copy a "MOVE" diff.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/eclipse/emf/compare/merge/ReferenceChangeMerger.html#reject(org.eclipse.emf.compare.Diff,%20boolean)">reject</a></strong>(<a href="../../../../../org/eclipse/emf/compare/Diff.html" title="interface in org.eclipse.emf.compare">Diff</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</code>
<div class="block">Merge the given difference rejecting it.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/eclipse/emf/compare/merge/ReferenceChangeMerger.html#removeFromTarget(org.eclipse.emf.compare.ReferenceChange,%20boolean)">removeFromTarget</a></strong>(<a href="../../../../../org/eclipse/emf/compare/ReferenceChange.html" title="interface in org.eclipse.emf.compare">ReferenceChange</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</code>
<div class="block">This will be called when we need to remove an element from the target side.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/eclipse/emf/compare/merge/ReferenceChangeMerger.html#resetInTarget(org.eclipse.emf.compare.ReferenceChange,%20boolean)">resetInTarget</a></strong>(<a href="../../../../../org/eclipse/emf/compare/ReferenceChange.html" title="interface in org.eclipse.emf.compare">ReferenceChange</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</code>
<div class="block">This will be called by the merge operations in order to reset a reference to its original value, be
that the left or right side.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.emf.compare.merge.AbstractMerger">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.emf.compare.merge.<a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html" title="class in org.eclipse.emf.compare.merge">AbstractMerger</a></h3>
<code><a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#addAt(java.util.List,%20E,%20int)">addAt</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#copyLeftToRight(org.eclipse.emf.compare.Diff,%20org.eclipse.emf.common.util.Monitor)">copyLeftToRight</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#copyRightToLeft(org.eclipse.emf.compare.Diff,%20org.eclipse.emf.common.util.Monitor)">copyRightToLeft</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#createCopy(org.eclipse.emf.ecore.EObject)">createCopy</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#getDirectMergeDependencies(org.eclipse.emf.compare.Diff,%20boolean)">getDirectMergeDependencies</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#getDirectResultingMerges(org.eclipse.emf.compare.Diff,%20boolean)">getDirectResultingMerges</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#getDirectResultingRejections(org.eclipse.emf.compare.Diff,%20boolean)">getDirectResultingRejections</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#getRanking()">getRanking</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#getRegistry()">getRegistry</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#handleEquivalences(org.eclipse.emf.compare.Diff,%20boolean,%20org.eclipse.emf.common.util.Monitor)">handleEquivalences</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#handleImpliedBy(org.eclipse.emf.compare.Diff,%20boolean,%20org.eclipse.emf.common.util.Monitor)">handleImpliedBy</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#handleImplies(org.eclipse.emf.compare.Diff,%20boolean,%20org.eclipse.emf.common.util.Monitor)">handleImplies</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#isAdd(org.eclipse.emf.compare.ReferenceChange,%20boolean)">isAdd</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#mergeDiff(org.eclipse.emf.compare.Diff,%20boolean,%20org.eclipse.emf.common.util.Monitor)">mergeDiff</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#mergeRequiredBy(org.eclipse.emf.compare.Diff,%20boolean,%20org.eclipse.emf.common.util.Monitor)">mergeRequiredBy</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#mergeRequires(org.eclipse.emf.compare.Diff,%20boolean,%20org.eclipse.emf.common.util.Monitor)">mergeRequires</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#setRanking(int)">setRanking</a>, <a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#setRegistry(org.eclipse.emf.compare.merge.IMerger.Registry)">setRegistry</a></code></li>
</ul>
<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="ReferenceChangeMerger()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ReferenceChangeMerger</h4>
<pre>public&nbsp;ReferenceChangeMerger()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="isMergerFor(org.eclipse.emf.compare.Diff)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMergerFor</h4>
<pre>public&nbsp;boolean&nbsp;isMergerFor(<a href="../../../../../org/eclipse/emf/compare/Diff.html" title="interface in org.eclipse.emf.compare">Diff</a>&nbsp;target)</pre>
<div class="block">Check if the merger is a good candidate to merge the given difference.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>target</code> - The given target difference.</dd>
<dt><span class="strong">Returns:</span></dt><dd>True if it is the good candidate, false otherwise.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/eclipse/emf/compare/merge/IMerger.html#isMergerFor(org.eclipse.emf.compare.Diff)"><code>IMerger.isMergerFor(org.eclipse.emf.compare.Diff)</code></a></dd></dl>
</li>
</ul>
<a name="reject(org.eclipse.emf.compare.Diff, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reject</h4>
<pre>protected&nbsp;void&nbsp;reject(<a href="../../../../../org/eclipse/emf/compare/Diff.html" title="interface in org.eclipse.emf.compare">Diff</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</pre>
<div class="block">Merge the given difference rejecting it.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#reject(org.eclipse.emf.compare.Diff,%20boolean)">reject</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html" title="class in org.eclipse.emf.compare.merge">AbstractMerger</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>diff</code> - The difference to merge.</dd><dd><code>rightToLeft</code> - The direction of the merge.</dd></dl>
</li>
</ul>
<a name="accept(org.eclipse.emf.compare.Diff, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>accept</h4>
<pre>protected&nbsp;void&nbsp;accept(<a href="../../../../../org/eclipse/emf/compare/Diff.html" title="interface in org.eclipse.emf.compare">Diff</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</pre>
<div class="block">Merge the given difference accepting it.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html#accept(org.eclipse.emf.compare.Diff,%20boolean)">accept</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/eclipse/emf/compare/merge/AbstractMerger.html" title="class in org.eclipse.emf.compare.merge">AbstractMerger</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>diff</code> - The difference to merge.</dd><dd><code>rightToLeft</code> - The direction of the merge.</dd></dl>
</li>
</ul>
<a name="moveElement(org.eclipse.emf.compare.ReferenceChange, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>moveElement</h4>
<pre>protected&nbsp;void&nbsp;moveElement(<a href="../../../../../org/eclipse/emf/compare/ReferenceChange.html" title="interface in org.eclipse.emf.compare">ReferenceChange</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</pre>
<div class="block">This will be called when trying to copy a "MOVE" diff.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>diff</code> - The diff we are currently merging.</dd><dd><code>rightToLeft</code> - Whether we should move the value in the left or right side.</dd></dl>
</li>
</ul>
<a name="doMove(org.eclipse.emf.compare.ReferenceChange, org.eclipse.emf.compare.Comparison, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doMove</h4>
<pre>protected&nbsp;void&nbsp;doMove(<a href="../../../../../org/eclipse/emf/compare/ReferenceChange.html" title="interface in org.eclipse.emf.compare">ReferenceChange</a>&nbsp;diff,
<a href="../../../../../org/eclipse/emf/compare/Comparison.html" title="interface in org.eclipse.emf.compare">Comparison</a>&nbsp;comparison,
<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;expectedContainer,
<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;expectedValue,
boolean&nbsp;rightToLeft)</pre>
<div class="block">This will do the actual work of moving the element into its reference. All sanity checks were made in
<code>#moveElement(boolean)</code> and no more verification will be made here.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>diff</code> - The diff we are currently merging.</dd><dd><code>comparison</code> - Comparison holding this Diff.</dd><dd><code>expectedContainer</code> - The container in which we are reorganizing a reference.</dd><dd><code>expectedValue</code> - The value that is to be moved within its reference.</dd><dd><code>rightToLeft</code> - Whether we should move the value in the left or right side.</dd></dl>
</li>
</ul>
<a name="addInTarget(org.eclipse.emf.compare.ReferenceChange, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addInTarget</h4>
<pre>protected&nbsp;void&nbsp;addInTarget(<a href="../../../../../org/eclipse/emf/compare/ReferenceChange.html" title="interface in org.eclipse.emf.compare">ReferenceChange</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</pre>
<div class="block">This will be called when we need to create an element in the target side.
<p>
All necessary sanity checks have been made to ensure that the current operation is one that should
create an object in its side or add an objet to a reference. In other words, either :
<ul>
<li>We are copying from right to left and
<ul>
<li>we are copying an addition to the right side (we need to create the same object in the left), or</li>
<li>we are copying a deletion from the left side (we need to revert the deletion).</li>
</ul>
</li>
<li>We are copying from left to right and
<ul>
<li>we are copying a deletion from the right side (we need to revert the deletion), or</li>
<li>we are copying an addition to the left side (we need to create the same object in the right).</li>
</ul>
</li>
</ul>
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>diff</code> - The diff we are currently merging.</dd><dd><code>rightToLeft</code> - Tells us whether we are to add an object on the left or right side.</dd></dl>
</li>
</ul>
<a name="removeFromTarget(org.eclipse.emf.compare.ReferenceChange, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeFromTarget</h4>
<pre>protected&nbsp;void&nbsp;removeFromTarget(<a href="../../../../../org/eclipse/emf/compare/ReferenceChange.html" title="interface in org.eclipse.emf.compare">ReferenceChange</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</pre>
<div class="block">This will be called when we need to remove an element from the target side.
<p>
All necessary sanity checks have been made to ensure that the current operation is one that should
delete an object. In other words, we are :
<ul>
<li>Copying from right to left and either
<ul>
<li>we are copying a deletion from the right side (we need to remove the same object in the left) or,</li>
<li>we are copying an addition to the left side (we need to revert the addition).</li>
</ul>
</li>
<li>Copying from left to right and either
<ul>
<li>we are copying an addition to the right side (we need to revert the addition), or.</li>
<li>we are copying a deletion from the left side (we need to remove the same object in the right).</li>
</ul>
</li>
</ul>
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>diff</code> - The diff we are currently merging.</dd><dd><code>rightToLeft</code> - Tells us whether we are to add an object on the left or right side.</dd></dl>
</li>
</ul>
<a name="resetInTarget(org.eclipse.emf.compare.ReferenceChange, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetInTarget</h4>
<pre>protected&nbsp;void&nbsp;resetInTarget(<a href="../../../../../org/eclipse/emf/compare/ReferenceChange.html" title="interface in org.eclipse.emf.compare">ReferenceChange</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</pre>
<div class="block">This will be called by the merge operations in order to reset a reference to its original value, be
that the left or right side.
<p>
Should never be called on multi-valued references.
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>diff</code> - The diff we are currently merging.</dd><dd><code>rightToLeft</code> - Tells us the direction of this merge operation.</dd></dl>
</li>
</ul>
<a name="checkImpliedDiffsOrdering(org.eclipse.emf.compare.ReferenceChange, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkImpliedDiffsOrdering</h4>
<pre>protected&nbsp;void&nbsp;checkImpliedDiffsOrdering(<a href="../../../../../org/eclipse/emf/compare/ReferenceChange.html" title="interface in org.eclipse.emf.compare">ReferenceChange</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</pre>
<div class="block">In the case of many-to-many eOpposite references, EMF will simply report the difference made on one
side of the equivalence to the other, without considering ordering in any way. In such cases, we'll
iterate over our equivalences after the merge, and double-check the ordering ourselves, fixing it as
needed.
<p>
Note that both implied and equivalent diffs will be double-checked from here.
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>diff</code> - The diff we are currently merging.</dd><dd><code>rightToLeft</code> - Direction of the merge.</dd><dt><span class="strong">Since:</span></dt>
<dd>3.1</dd></dl>
</li>
</ul>
<a name="findMatchIn(org.eclipse.emf.compare.Comparison, java.util.List, org.eclipse.emf.ecore.EObject)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findMatchIn</h4>
<pre>protected&nbsp;<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;findMatchIn(<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/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<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;list,
<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;element)</pre>
<div class="block">Seeks a match of the given <code>element</code> in the given list, using the equality helper to find it.
This is only used when moving or deleting proxies for now.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>comparison</code> - The comparison which Diff we are currently merging.</dd><dd><code>list</code> - The list from which we seek a value.</dd><dd><code>element</code> - The value for which we need a match in <code>list</code>.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The match of <code>element</code> in <code>list</code>, <code>null</code> if none.</dd></dl>
</li>
</ul>
<a name="findInsertionIndex(org.eclipse.emf.compare.Comparison, org.eclipse.emf.compare.Diff, boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>findInsertionIndex</h4>
<pre>protected&nbsp;int&nbsp;findInsertionIndex(<a href="../../../../../org/eclipse/emf/compare/Comparison.html" title="interface in org.eclipse.emf.compare">Comparison</a>&nbsp;comparison,
<a href="../../../../../org/eclipse/emf/compare/Diff.html" title="interface in org.eclipse.emf.compare">Diff</a>&nbsp;diff,
boolean&nbsp;rightToLeft)</pre>
<div class="block">This will be used by the distinct merge actions in order to find the index at which a value should be
inserted in its target list. See <a href="../../../../../org/eclipse/emf/compare/internal/utils/DiffUtil.html#findInsertionIndex(org.eclipse.emf.compare.Comparison,%20org.eclipse.emf.compare.Diff,%20boolean)"><code>DiffUtil.findInsertionIndex(Comparison, Diff, boolean)</code></a> for
more on this.
<p>
Sub-classes can override this if the insertion order is irrelevant. A return value of <code>-1</code> will
be considered as "no index" and the value will be inserted at the end of its target list.
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>comparison</code> - This will be used in order to retrieve the Match for EObjects when comparing them.</dd><dd><code>diff</code> - The diff which merging will trigger the need for an insertion index in its target list.</dd><dd><code>rightToLeft</code> - <code>true</code> if the merging will be done into the left list, so that we should consider the
right model as the source and the left as the target.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The index at which this <code>diff</code>'s value should be inserted into the 'target' list, as
inferred from <code>rightToLeft</code>. <code>-1</code> if the value should be inserted at the end of its
target list.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/eclipse/emf/compare/internal/utils/DiffUtil.html#findInsertionIndex(org.eclipse.emf.compare.Comparison,%20org.eclipse.emf.compare.Diff,%20boolean)"><code>DiffUtil.findInsertionIndex(Comparison, Diff, boolean)</code></a></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/ReferenceChangeMerger.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/merge/PseudoConflictMerger.html" title="class in org.eclipse.emf.compare.merge"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/eclipse/emf/compare/merge/ResourceAttachmentChangeMerger.html" title="class in org.eclipse.emf.compare.merge"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/emf/compare/merge/ReferenceChangeMerger.html" target="_top">Frames</a></li>
<li><a href="ReferenceChangeMerger.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>