/**
* <copyright>
*
* Copyright (c) 2010-2016 Thales Global Services S.A.S.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Thales Global Services S.A.S. - initial API and implementation
*
* </copyright>
*/
package org.eclipse.emf.diffmerge.diffdata;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.diffmerge.api.IMatch.Editable;
import org.eclipse.emf.diffmerge.api.diff.IAttributeValuePresence;
import org.eclipse.emf.diffmerge.api.diff.IElementPresence;
import org.eclipse.emf.diffmerge.api.diff.IReferenceValuePresence;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EReference;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>EMatch</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getMatchID <em>Match ID</em>}</li>
* <li>{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getAncestor <em>Ancestor</em>}</li>
* <li>{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getReference <em>Reference</em>}</li>
* <li>{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getTarget <em>Target</em>}</li>
* <li>{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getModifiableRelatedDifferences <em>Modifiable Related Differences</em>}</li>
* <li>{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getModifiableAttributeMap <em>Modifiable Attribute Map</em>}</li>
* <li>{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getModifiableReferenceMap <em>Modifiable Reference Map</em>}</li>
* <li>{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getElementPresenceDifference <em>Element Presence Difference</em>}</li>
* <li>{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getReferenceOwnershipDifference <em>Reference Ownership Difference</em>}</li>
* <li>{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getTargetOwnershipDifference <em>Target Ownership Difference</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.emf.diffmerge.diffdata.DiffdataPackage#getEMatch()
* @model superTypes="org.eclipse.emf.diffmerge.diffdata.IEditableMatch"
* @generated
*/
public interface EMatch extends EObject, Editable {
/**
* Returns the value of the '<em><b>Match ID</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Match ID</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Match ID</em>' attribute.
* @see #setMatchID(Object)
* @see org.eclipse.emf.diffmerge.diffdata.DiffdataPackage#getEMatch_MatchID()
* @model transient="true"
* @generated
*/
Object getMatchID();
/**
* Sets the value of the '{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getMatchID <em>Match ID</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Match ID</em>' attribute.
* @see #getMatchID()
* @generated
*/
void setMatchID(Object value);
/**
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Mapping</em>' container reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @model kind="operation"
* @generated
*/
EMapping getMapping();
/**
* Returns the value of the '<em><b>Ancestor</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Ancestor</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Ancestor</em>' reference.
* @see #setAncestor(EObject)
* @see org.eclipse.emf.diffmerge.diffdata.DiffdataPackage#getEMatch_Ancestor()
* @model
* @generated
*/
EObject getAncestor();
/**
* Sets the value of the '{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getAncestor <em>Ancestor</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Ancestor</em>' reference.
* @see #getAncestor()
* @generated
*/
void setAncestor(EObject value);
/**
* Returns the value of the '<em><b>Reference</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Reference</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Reference</em>' reference.
* @see #setReference(EObject)
* @see org.eclipse.emf.diffmerge.diffdata.DiffdataPackage#getEMatch_Reference()
* @model
* @generated
*/
EObject getReference();
/**
* Sets the value of the '{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getReference <em>Reference</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Reference</em>' reference.
* @see #getReference()
* @generated
*/
void setReference(EObject value);
/**
* Returns the value of the '<em><b>Target</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Target</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Target</em>' reference.
* @see #setTarget(EObject)
* @see org.eclipse.emf.diffmerge.diffdata.DiffdataPackage#getEMatch_Target()
* @model
* @generated
*/
EObject getTarget();
/**
* Sets the value of the '{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getTarget <em>Target</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Target</em>' reference.
* @see #getTarget()
* @generated
*/
void setTarget(EObject value);
/**
* Returns the value of the '<em><b>Modifiable Related Differences</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.emf.diffmerge.diffdata.EMergeableDifference}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Modifiable Related Differences</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Modifiable Related Differences</em>' containment reference list.
* @see org.eclipse.emf.diffmerge.diffdata.DiffdataPackage#getEMatch_ModifiableRelatedDifferences()
* @model containment="true"
* @generated
*/
EList<EMergeableDifference> getModifiableRelatedDifferences();
/**
* Returns the value of the '<em><b>Modifiable Attribute Map</b></em>' map.
* The key is of type {@link org.eclipse.emf.ecore.EAttribute},
* and the value is of type list of {@link java.util.Map.Entry<java.lang.Object, org.eclipse.emf.diffmerge.api.diff.IAttributeValuePresence>},
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Modifiable Attribute Map</em>' map isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Modifiable Attribute Map</em>' map.
* @see org.eclipse.emf.diffmerge.diffdata.DiffdataPackage#getEMatch_ModifiableAttributeMap()
* @model mapType="org.eclipse.emf.diffmerge.diffdata.AttributeToValueToDifferenceEntry<org.eclipse.emf.ecore.EAttribute, org.eclipse.emf.diffmerge.diffdata.ValueToDifferenceEntry>"
* @generated
*/
@SuppressWarnings("javadoc")
EMap<EAttribute, EMap<Object, IAttributeValuePresence>> getModifiableAttributeMap();
/**
* Returns the value of the '<em><b>Modifiable Reference Map</b></em>' map.
* The key is of type {@link org.eclipse.emf.ecore.EReference},
* and the value is of type list of {@link java.util.Map.Entry<org.eclipse.emf.ecore.EObject, org.eclipse.emf.diffmerge.api.diff.IReferenceValuePresence>},
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Modifiable Reference Map</em>' map isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Modifiable Reference Map</em>' map.
* @see org.eclipse.emf.diffmerge.diffdata.DiffdataPackage#getEMatch_ModifiableReferenceMap()
* @model mapType="org.eclipse.emf.diffmerge.diffdata.ReferenceToElementToDifferenceEntry<org.eclipse.emf.ecore.EReference, org.eclipse.emf.diffmerge.diffdata.ElementToDifferenceEntry>"
* @generated
*/
@SuppressWarnings("javadoc")
EMap<EReference, EMap<EObject, IReferenceValuePresence>> getModifiableReferenceMap();
/**
* Returns the value of the '<em><b>Element Presence Difference</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Element Presence Difference</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Element Presence Difference</em>' reference.
* @see #setElementPresenceDifference(IElementPresence)
* @see org.eclipse.emf.diffmerge.diffdata.DiffdataPackage#getEMatch_ElementPresenceDifference()
* @model type="org.eclipse.emf.diffmerge.diffdata.IElementPresence"
* @generated
*/
IElementPresence getElementPresenceDifference();
/**
* Sets the value of the '{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getElementPresenceDifference <em>Element Presence Difference</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Element Presence Difference</em>' reference.
* @see #getElementPresenceDifference()
* @generated
*/
void setElementPresenceDifference(IElementPresence value);
/**
* Returns the value of the '<em><b>Reference Ownership Difference</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Reference Ownership Difference</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Reference Ownership Difference</em>' reference.
* @see #setReferenceOwnershipDifference(IReferenceValuePresence)
* @see org.eclipse.emf.diffmerge.diffdata.DiffdataPackage#getEMatch_ReferenceOwnershipDifference()
* @model type="org.eclipse.emf.diffmerge.diffdata.IReferenceValuePresence"
* @generated
*/
IReferenceValuePresence getReferenceOwnershipDifference();
/**
* Sets the value of the '{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getReferenceOwnershipDifference <em>Reference Ownership Difference</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Reference Ownership Difference</em>' reference.
* @see #getReferenceOwnershipDifference()
* @generated
*/
void setReferenceOwnershipDifference(IReferenceValuePresence value);
/**
* Returns the value of the '<em><b>Target Ownership Difference</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Target Ownership Difference</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Target Ownership Difference</em>' reference.
* @see #setTargetOwnershipDifference(IReferenceValuePresence)
* @see org.eclipse.emf.diffmerge.diffdata.DiffdataPackage#getEMatch_TargetOwnershipDifference()
* @model type="org.eclipse.emf.diffmerge.diffdata.IReferenceValuePresence"
* @generated
*/
IReferenceValuePresence getTargetOwnershipDifference();
/**
* Sets the value of the '{@link org.eclipse.emf.diffmerge.diffdata.EMatch#getTargetOwnershipDifference <em>Target Ownership Difference</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Target Ownership Difference</em>' reference.
* @see #getTargetOwnershipDifference()
* @generated
*/
void setTargetOwnershipDifference(IReferenceValuePresence value);
} // EMatch