/** * Copyright (c) 2012, 2015 Obeo. * 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: * Obeo - initial API and implementation */ package org.eclipse.emf.compare; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; /** * <!-- begin-user-doc --> A representation of the model object '<em><b>Diff</b></em>'. <!-- end-user-doc --> * * <!-- begin-model-doc --> * A DiffElement describes a difference related to the EObjects mapped by its parent MatchElement. * <!-- end-model-doc --> * * <p> * The following features are supported: * <ul> * <li>{@link org.eclipse.emf.compare.Diff#getMatch <em>Match</em>}</li> * <li>{@link org.eclipse.emf.compare.Diff#getRequires <em>Requires</em>}</li> * <li>{@link org.eclipse.emf.compare.Diff#getRequiredBy <em>Required By</em>}</li> * <li>{@link org.eclipse.emf.compare.Diff#getImplies <em>Implies</em>}</li> * <li>{@link org.eclipse.emf.compare.Diff#getImpliedBy <em>Implied By</em>}</li> * <li>{@link org.eclipse.emf.compare.Diff#getRefines <em>Refines</em>}</li> * <li>{@link org.eclipse.emf.compare.Diff#getRefinedBy <em>Refined By</em>}</li> * <li>{@link org.eclipse.emf.compare.Diff#getPrimeRefining <em>Prime Refining</em>}</li> * <li>{@link org.eclipse.emf.compare.Diff#getKind <em>Kind</em>}</li> * <li>{@link org.eclipse.emf.compare.Diff#getSource <em>Source</em>}</li> * <li>{@link org.eclipse.emf.compare.Diff#getState <em>State</em>}</li> * <li>{@link org.eclipse.emf.compare.Diff#getEquivalence <em>Equivalence</em>}</li> * <li>{@link org.eclipse.emf.compare.Diff#getConflict <em>Conflict</em>}</li> * </ul> * </p> * * @see org.eclipse.emf.compare.ComparePackage#getDiff() * @model * @generated */ public interface Diff extends EObject { /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ String copyright = "Copyright (c) 2012 Obeo.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\n\r\nContributors:\r\n Obeo - initial API and implementation"; //$NON-NLS-1$ /** * Returns the value of the '<em><b>Match</b></em>' container reference. It is bidirectional and its * opposite is '{@link org.eclipse.emf.compare.Match#getDifferences <em>Differences</em>}'. <!-- * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> Back-reference towards this * difference's parent match, it points towards the mapping on which this difference has been detected. * <!-- end-model-doc --> * * @return the value of the '<em>Match</em>' container reference. * @see #setMatch(Match) * @model derived="true" * @generated */ Match getMatch(); /** * Sets the value of the '{@link org.eclipse.emf.compare.Diff#getMatch <em>Match</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Match</em>' reference. * @see #getMatch() * @generated */ void setMatch(Match value); /** * Returns the value of the '<em><b>Requires</b></em>' reference list. The list contents are of type * {@link org.eclipse.emf.compare.Diff}. It is bidirectional and its opposite is ' * {@link org.eclipse.emf.compare.Diff#getRequiredBy <em>Required By</em>}'. <!-- begin-user-doc --> <!-- * end-user-doc --> <!-- begin-model-doc --> This will reference all differences that should be merged * before this one. <!-- end-model-doc --> * * @return the value of the '<em>Requires</em>' reference list. * @see org.eclipse.emf.compare.ComparePackage#getDiff_Requires() * @see org.eclipse.emf.compare.Diff#getRequiredBy * @model opposite="requiredBy" * @generated */ EList<Diff> getRequires(); /** * Returns the value of the '<em><b>Required By</b></em>' reference list. The list contents are of type * {@link org.eclipse.emf.compare.Diff}. It is bidirectional and its opposite is ' * {@link org.eclipse.emf.compare.Diff#getRequires <em>Requires</em>}'. <!-- begin-user-doc --> <!-- * end-user-doc --> <!-- begin-model-doc --> This will reference all differences that depend on this one * for their merging. <!-- end-model-doc --> * * @return the value of the '<em>Required By</em>' reference list. * @see org.eclipse.emf.compare.ComparePackage#getDiff_RequiredBy() * @see org.eclipse.emf.compare.Diff#getRequires * @model opposite="requires" * @generated */ EList<Diff> getRequiredBy(); /** * Returns the value of the '<em><b>Implies</b></em>' reference list. * The list contents are of type {@link org.eclipse.emf.compare.Diff}. * It is bidirectional and its opposite is '{@link org.eclipse.emf.compare.Diff#getImpliedBy <em>Implied By</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Implies</em>' reference list isn't clear, there really should be more of a * description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Implies</em>' reference list. * @see org.eclipse.emf.compare.ComparePackage#getDiff_Implies() * @see org.eclipse.emf.compare.Diff#getImpliedBy * @model opposite="impliedBy" * @generated */ EList<Diff> getImplies(); /** * Returns the value of the '<em><b>Implied By</b></em>' reference list. * The list contents are of type {@link org.eclipse.emf.compare.Diff}. * It is bidirectional and its opposite is '{@link org.eclipse.emf.compare.Diff#getImplies <em>Implies</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Implied By</em>' reference list isn't clear, there really should be more of * a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Implied By</em>' reference list. * @see org.eclipse.emf.compare.ComparePackage#getDiff_ImpliedBy() * @see org.eclipse.emf.compare.Diff#getImplies * @model opposite="implies" * @generated */ EList<Diff> getImpliedBy(); /** * Returns the value of the '<em><b>Refines</b></em>' reference list. The list contents are of type * {@link org.eclipse.emf.compare.Diff}. It is bidirectional and its opposite is ' * {@link org.eclipse.emf.compare.Diff#getRefinedBy <em>Refined By</em>}'. <!-- begin-user-doc --> <!-- * end-user-doc --> <!-- begin-model-doc --> This can be used to create "high level" differences to * regroup one or more diffs in a common "container". For example, this could be used to regroup <i>n</i> * technical differences into one single semantic difference, such as the differences * "profile application added" and "reference to stereotype added" that can actually be regrouped under a * single, more understandable "stereotype application added". <!-- end-model-doc --> * * @return the value of the '<em>Refines</em>' reference list. * @see org.eclipse.emf.compare.ComparePackage#getDiff_Refines() * @see org.eclipse.emf.compare.Diff#getRefinedBy * @model opposite="refinedBy" * @generated */ EList<Diff> getRefines(); /** * Returns the value of the '<em><b>Refined By</b></em>' reference list. The list contents are of type * {@link org.eclipse.emf.compare.Diff}. It is bidirectional and its opposite is ' * {@link org.eclipse.emf.compare.Diff#getRefines <em>Refines</em>}'. <!-- begin-user-doc --> <!-- * end-user-doc --> <!-- begin-model-doc --> This will reference the higher-level difference that shadows * this one, if any. <!-- end-model-doc --> * * @return the value of the '<em>Refined By</em>' reference list. * @see org.eclipse.emf.compare.ComparePackage#getDiff_RefinedBy() * @see org.eclipse.emf.compare.Diff#getRefines * @model opposite="refines" * @generated */ EList<Diff> getRefinedBy(); /** * Returns the value of the '<em><b>Prime Refining</b></em>' reference. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Prime Refining</em>' reference isn't clear, there really should be more of a * description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Prime Refining</em>' reference. * @see org.eclipse.emf.compare.ComparePackage#getDiff_PrimeRefining() * @model transient="true" changeable="false" derived="true" * @generated */ Diff getPrimeRefining(); /** * Returns the value of the '<em><b>Kind</b></em>' attribute. The literals are from the enumeration * {@link org.eclipse.emf.compare.DifferenceKind}. <!-- begin-user-doc --> <!-- end-user-doc --> <!-- * begin-model-doc --> Describes the kind of this difference, whether it is an addition, deletion, change, * or move. <!-- end-model-doc --> * * @return the value of the '<em>Kind</em>' attribute. * @see org.eclipse.emf.compare.DifferenceKind * @see #setKind(DifferenceKind) * @see org.eclipse.emf.compare.ComparePackage#getDiff_Kind() * @model required="true" * @generated */ DifferenceKind getKind(); /** * Sets the value of the '{@link org.eclipse.emf.compare.Diff#getKind <em>Kind</em>}' attribute. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @param value * the new value of the '<em>Kind</em>' attribute. * @see org.eclipse.emf.compare.DifferenceKind * @see #getKind() * @generated */ void setKind(DifferenceKind value); /** * Returns the value of the '<em><b>Conflict</b></em>' reference. It is bidirectional and its opposite is * '{@link org.eclipse.emf.compare.Conflict#getDifferences <em>Differences</em>}'. <!-- begin-user-doc --> * <!-- end-user-doc --> <!-- begin-model-doc --> If this element is in conflict with one (or more) other * differences, this will reference the Conflict association. <!-- end-model-doc --> * * @return the value of the '<em>Conflict</em>' reference. * @see #setConflict(Conflict) * @see org.eclipse.emf.compare.ComparePackage#getDiff_Conflict() * @see org.eclipse.emf.compare.Conflict#getDifferences * @model opposite="differences" * @generated */ Conflict getConflict(); /** * Sets the value of the '{@link org.eclipse.emf.compare.Diff#getConflict <em>Conflict</em>}' reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @param value the new value of the '<em>Conflict</em>' reference. * @see #getConflict() * @generated */ void setConflict(Conflict value); /** * Returns the value of the '<em><b>Source</b></em>' attribute. The literals are from the enumeration * {@link org.eclipse.emf.compare.DifferenceSource}. <!-- begin-user-doc --> <!-- end-user-doc --> <!-- * begin-model-doc --> Returns the source of this diff, either one of DifferenceSource.LEFT (for two-way * comparisons or differences detected between the left and origin elements) or DifferenceSource.RIGHT * (for differences between the right and origin elements). <!-- end-model-doc --> * * @return the value of the '<em>Source</em>' attribute. * @see org.eclipse.emf.compare.DifferenceSource * @see #setSource(DifferenceSource) * @see org.eclipse.emf.compare.ComparePackage#getDiff_Source() * @model required="true" * @generated */ DifferenceSource getSource(); /** * Sets the value of the '{@link org.eclipse.emf.compare.Diff#getSource <em>Source</em>}' attribute. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @param value * the new value of the '<em>Source</em>' attribute. * @see org.eclipse.emf.compare.DifferenceSource * @see #getSource() * @generated */ void setSource(DifferenceSource value); /** * Returns the value of the '<em><b>State</b></em>' attribute. The literals are from the enumeration * {@link org.eclipse.emf.compare.DifferenceState}. <!-- begin-user-doc --> <!-- end-user-doc --> <!-- * begin-model-doc --> Returns the current state of this diff, either one of DifferenceState.UNRESOLVED * (Diff is still in its initial state), DifferenceState.MERGED when the Diff has been merged or * DifferenceState.DISCARDED if the user chose to ignore this difference. <!-- end-model-doc --> * * @return the value of the '<em>State</em>' attribute. * @see org.eclipse.emf.compare.DifferenceState * @see #setState(DifferenceState) * @see org.eclipse.emf.compare.ComparePackage#getDiff_State() * @model required="true" * @generated */ DifferenceState getState(); /** * Sets the value of the '{@link org.eclipse.emf.compare.Diff#getState <em>State</em>}' attribute. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @param value * the new value of the '<em>State</em>' attribute. * @see org.eclipse.emf.compare.DifferenceState * @see #getState() * @generated */ void setState(DifferenceState value); /** * Returns the value of the '<em><b>Equivalence</b></em>' reference. It is bidirectional and its opposite * is '{@link org.eclipse.emf.compare.Equivalence#getDifferences <em>Differences</em>}'. <!-- * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> If this diff is equivalent to * another, we will reference the equivalence from here. For example, if a reference has an eOpposite, we * will detect one diff for each side of the bidirectional reference, yet merging one of these diffs is * enough. We consider them equivalent. <!-- end-model-doc --> * * @return the value of the '<em>Equivalence</em>' reference. * @see #setEquivalence(Equivalence) * @see org.eclipse.emf.compare.ComparePackage#getDiff_Equivalence() * @see org.eclipse.emf.compare.Equivalence#getDifferences * @model opposite="differences" * @generated */ Equivalence getEquivalence(); /** * Sets the value of the '{@link org.eclipse.emf.compare.Diff#getEquivalence <em>Equivalence</em>}' reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @param value the new value of the '<em>Equivalence</em>' reference. * @see #getEquivalence() * @generated */ void setEquivalence(Equivalence value); /** * <!-- begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> This will merge the diff from * left to right. <!-- end-model-doc --> * * @model * @generated */ @Deprecated void copyRightToLeft(); /** * <!-- begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> This will merge the diff from * right to left. <!-- end-model-doc --> * * @model * @generated */ @Deprecated void copyLeftToRight(); /** * <!-- begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> This will remove the diff from * the model, effectively "forgetting" about it. <!-- end-model-doc --> * * @model * @generated */ void discard(); } // Diff