Class AbstractEmfBasedComparisonParticipant
- java.lang.Object
- 
- com._1c.g5.v8.dt.compare.participant.AbstractEmfBasedComparisonParticipant
 
- 
- All Implemented Interfaces:
- IComparisonParticipant
 - Direct Known Subclasses:
- AbstractMdAwareComparisonParticipant
 
 public abstract class AbstractEmfBasedComparisonParticipant extends Object implements IComparisonParticipant An abstract participant for comparison of EMF-based objects with Model core support.
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description protected classAbstractEmfBasedComparisonParticipant.BmIdsWrapperWrapper to store bm ids of child nodes to be compared later in a separate thread.protected static classAbstractEmfBasedComparisonParticipant.EObjectClassFeatures
 - 
Field SummaryFields Modifier and Type Field Description protected static booleanLOG_TYPESprotected IPictureManagerpictureManagerprotected IProjectFileSystemSupportProviderprojectFileSystemSupportProviderprotected IQualifiedNameFilePathConverterqualifiedNameFilePathConverterprotected org.eclipse.xtext.scoping.IScopeProviderscopeProviderprotected ITopObjectFqnGeneratortopObjectFqnGenerator
 - 
Constructor SummaryConstructors Modifier Constructor Description protectedAbstractEmfBasedComparisonParticipant()Creates new participant instance with default comparison nodes factory.protectedAbstractEmfBasedComparisonParticipant(ComparisonNodeFactory nodeFactory)Creates new participant instance with specific comparison nodes factory.
 - 
Method SummaryAll Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected org.eclipse.emf.ecore.EObjectadaptOtherReference(MergeContext context, org.eclipse.emf.ecore.EObject otherObject, org.eclipse.emf.ecore.EReference eReference, org.eclipse.emf.ecore.EObject otherValue, org.eclipse.emf.ecore.EObject mainObject)protected org.eclipse.emf.ecore.EClassadoptEClassToImport(org.eclipse.emf.ecore.EClass otherEClass, IComparisonSession session)Converts, if possible, the other sideEClassinto a main supported by the main side to import object.org.eclipse.emf.ecore.EStructuralFeatureadoptMainSideFeature(org.eclipse.emf.ecore.EStructuralFeature mainSideFeature, IComparisonSession session)Converts, if possible, the main side feature into a other supported by the other side object.protected booleanareDifferentEClassObjectsMergeable(org.eclipse.emf.ecore.EObject main, org.eclipse.emf.ecore.EObject other, ComparisonContext comparisonContext)protected static voidassertEClassesMatch(org.eclipse.emf.ecore.EObject object1, org.eclipse.emf.ecore.EObject object2)Asserts whether the two specifiedEObjects have identicalEClasses.protected ComparisonFlagscalculateCompareValueFlags(AbstractComparedEmfObjects<?> comparingObject, ComparedObjects<Object> values, ComparedFeatures<?> comparedFeatures, ComparisonContext comparisonContext)protected voidcheckForOneSideConflict(IComparisonSession session, IComparedObjects<? extends org.eclipse.emf.ecore.EObject> comparingObject, ComparisonFlags flags)voidclear()Clears the participant caches.protected ComparisonFlagscompareEmfContainment(TopComparisonNode topParent, LazyNodeProvider<? extends ComparisonNode> nodeProvider, AbstractComparedEmfObjects<?> comparingObject, ComparedFeatures<org.eclipse.emf.ecore.EReference> comparedReferences, AbstractEmfBasedComparisonParticipant.BmIdsWrapper childBmIds, ComparisonContext comparisonContext)Compares containment feature.protected ComparisonFlagscompareEmfObject(TopComparisonNode topParent, LazyNodeProvider<? extends ComparisonNode> nodeProvider, AbstractComparedEmfObjects<?> comparingObject, AbstractEmfBasedComparisonParticipant.BmIdsWrapper childBmIds, ComparisonContext comparisonContext)protected ComparisonFlagscompareOneSideObject(TopComparisonNode topParent, LazyNodeProvider<? extends ComparisonNode> nodeProvider, AbstractComparedEmfObjects<?> comparingObject, AbstractEmfBasedComparisonParticipant.BmIdsWrapper childBmIds, ComparisonContext comparisonContext)Compares one-side object's triple.protected ComparisonFlagscomparePictureResource(AbstractComparedEmfObjects<?> comparingObject, ComparisonContext comparisonContext)Compares picture resource for comparedPictureDef's.protected ComparisonFlagscompareReference(TopComparisonNode topParent, LazyNodeProvider<? extends ComparisonNode> nodeProvider, AbstractComparedEmfObjects<?> comparingObject, ComparedFeatures<org.eclipse.emf.ecore.EReference> comparedReferences, ComparisonContext comparisonContext)Compares a non-containment reference feature.protected ComparisonFlagscompareValue(TopComparisonNode topParent, LazyNodeProvider<? extends ComparisonNode> parentNodeProvider, AbstractComparedEmfObjects<?> parentComparedObjects, ComparedFeatures<?> comparedFeatures, ComparisonContext comparisonContext)protected AbstractEmfBasedComparisonParticipant.EObjectClassFeaturescreateClassFeaturesInstance()Creates new instance ofAbstractEmfBasedComparisonParticipant.EObjectClassFeaturesclass.protected abstract org.eclipse.emf.ecore.EObjectcreateImportedEObject(org.eclipse.emf.ecore.EObject otherObject, IMergeSession mergeSession)protected voidcreateResourceForImportedObject(org.eclipse.emf.ecore.resource.Resource.Factory resourceFactory, org.eclipse.emf.ecore.EObject originalObject, org.eclipse.emf.ecore.EObject importedObject, MergeContext context)Creates resource using given factory for given imported object.protected voiddeletePictureResourceFile(PictureDef mainPicture, IMergeSession session)Deletes the main picture resource file.protected <T extends FeatureComparisonNode>
 TfindChildNodeByFeature(IComparisonSession session, ComparisonNode parent, org.eclipse.emf.ecore.EStructuralFeature feature)protected ContainmentComparisonNodefindChildNodeByMatchedId(IComparisonSession session, ComparisonNode parent, MatchedEmfObjects matched)protected AbstractEmfBasedComparisonParticipant.EObjectClassFeaturesgetClassFeatures(AbstractComparedEmfObjects<?> comparingObject, IComparisonSession session, boolean alwaysRecalculate)Returns lists of features of the given EObjects being compared.protected AbstractEmfBasedComparisonParticipant.EObjectClassFeaturesgetClassFeatures(org.eclipse.emf.ecore.EObject object, IComparisonSession session)Returns lists of features of the given EObject.protected IEmfObjectMatchergetCustomMatcher(TopComparisonNode topNode, org.eclipse.emf.ecore.EReference reference, ComparisonContext comparisonContext)Returns a custom matcher for the specified reference.protected abstract StringgetExternalPropertyQualifyingType(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EReference externalProperty)Returns the EClass of the specified external property of the specified EObject.protected abstract StringgetExternalPropertySymlink(TopComparisonNode node, org.eclipse.emf.ecore.EReference externalProperty, ComparisonSide side, org.eclipse.emf.ecore.EObject eObject)Returns the symbolic link (FQN) of the specified external property.protected List<org.eclipse.emf.ecore.EReference>getFeaturesToCompareForOneSideObject(AbstractComparedEmfObjects<?> comparingObjects)Returns list of features to be always compared for one-side nodes.protected StringgetFeatureTypeDescription(org.eclipse.emf.ecore.EStructuralFeature feature)Map<String,IBmObject>getForcedDDRebuildScope(TopComparisonNode topNode, MergeContext context)In case if the merge process changes the top object it should supply information about affected DDs.protected List<String>getMultiReferenceSymlinks(org.eclipse.emf.ecore.EObject contextObject, org.eclipse.emf.ecore.EReference reference, IComparisonSession session, ComparisonSide side)Returns list of symbolic links for objects referenced by the specified multi-reference feature from the specified context object.protected StringgetMultiReferenceValueSymlink(org.eclipse.emf.ecore.EObject contextObject, org.eclipse.emf.ecore.EReference reference, org.eclipse.emf.ecore.EObject targetObject, IComparisonSession session, ComparisonSide side)Returns symbolic link of the specified target object lying into collection of referencing objects specified by the given multi-reference feature.protected ComparisonNodeFactorygetNodeFactory()Gets factory to create new comparison nodes.protected org.eclipse.emf.ecore.EStructuralFeaturegetOtherSideFeature(org.eclipse.emf.ecore.EStructuralFeature mainSideFeature, IComparisonSession session)Converts, if possible, the main side feature into a other supported by the other side object.protected PathgetPictureResourcePath(PictureDef picture, IComparisonDataSource dataSource)Returns the picture resource path for the given data source.List<PotentialMergeProblemDescription>getPotentialMergeProblemsDescriptions(ComparisonNode node, ComparisonContext comparisonContext)Returns human-readable descriptions of potential merge problems if the the specified node is merged.protected static org.eclipse.xtext.naming.QualifiedNamegetQualifiedName(String symlink)Splits the given symlink into segments and returns them as aQualifiedName.protected StringgetSingleReferenceSymlink(org.eclipse.emf.ecore.EObject contextObject, org.eclipse.emf.ecore.EReference reference, IComparisonSession session, ComparisonSide side)Returns a symbolic link for an object defined by a single reference from the given context object.protected ComparisonNodegetTopNode(ComparisonNode node)protected booleanhasConflictChangesInCollection(ComparedFeatures<org.eclipse.emf.ecore.EReference> comparedReferences, Collection<? extends MatchedEmfObjects> matchedElements)Tells whether the collection being compared should be treated as containing conflicts.protected org.eclipse.emf.ecore.EObjectimportEmfObject(MergeContext context, ComparisonNode mergingNode, org.eclipse.emf.ecore.EObject otherObject)protected voidimportPictureResourceFile(PictureDef picture, MergeContext context)Creates aIPostponedFileOperationto import the other side picture resource.protected booleanisBmIdMayChangeOnMerge(IBmObject bmObject)Tells whether bmId of an object may change during the merge phase.booleanisCandidateForPotentialMergeProblems(ComparisonNode node, IComparisonSession session)Tells whether the given node may break the configuration if it is merged.booleanisExcludedFromComparison(org.eclipse.emf.ecore.EStructuralFeature feature, AbstractComparedEmfObjects<?> comparedContextObjects, IComparisonSession session)Checks whether the feature must be excluded from the comparison.protected abstract booleanisFeatureWithCustomMerge(org.eclipse.emf.ecore.EStructuralFeature feature)protected booleanisUnmatchableContainment(org.eclipse.emf.ecore.EReference reference)Checks whether the specified containment feature cannot be matched by an identity-based matcher.protected Collection<MatchedEmfObjects>matchEmfObjects(TopComparisonNode topNode, AbstractComparedEmfObjects<?> comparingObject, ComparedFeatures<org.eclipse.emf.ecore.EReference> comparedReferences, ComparisonContext comparisonContext, ComparisonFlags parentFlags)protected voidmergeEmfProperties(MergeContext context, ComparisonNode mergingNode, AbstractComparedEmfObjects<?> mergingObjects)protected voidmergeEmfReference(MergeContext context, ReferenceFeatureComparisonNode mergingNode, AbstractComparedEmfObjects<?> mergingObjects, ComparedFeatures<org.eclipse.emf.ecore.EReference> comparedReferences)protected voidmergeOtherContainment(MergeContext context, ContainmentFeatureComparisonNode mergingNode, AbstractComparedEmfObjects<?> mergingObjects, ComparedFeatures<org.eclipse.emf.ecore.EReference> comparedReferences)ExternalMergeToolResultmergeUsingExternalTool(ComparisonNode node, ComparisonContext comparisonContext, org.eclipse.core.runtime.IProgressMonitor monitor)Merges nodes using an external tool that are supported by this participant.protected static booleanneedCreateOneSideNode(AbstractComparedEmfObjects<?> comparedObjects, ComparisonFlags nodeFlags, boolean threeWay)Checks whether we need to create one-side node for the compared objects.voidonChildrenMerged(TopComparisonNode topNode, MergeContext context)Called when the child nodes of the specified top node have been merged.List<IRenameOnMergeOperation>prepareRenameOperations(IMergeSession mergeSession, ComparisonContext context)Gets a list of rename operations prepared by this participant.protected voidremoveObjectFromContainerOnMerge(MergeContext context, org.eclipse.emf.ecore.EObject mainContainer, org.eclipse.emf.ecore.EReference mainReference, org.eclipse.emf.ecore.EObject mainObject)Removes the given object from the container on the MAIN side during the merge phase.protected voidremoveObjectFromListOnMerge(MergeContext context, org.eclipse.emf.common.util.EList<org.eclipse.emf.ecore.EObject> mainList, org.eclipse.emf.ecore.EObject mainObject)Removes the given object from the given list on the MAIN side during the merge phase.voidrestoreCustomSettings(ComparisonNode node, SerializableMergeSettings container, IComparisonSession session)Restores custom settings for the specified node from the given merge settings container.voidsaveCustomSettings(ComparisonNode node, SerializableMergeSettings container, IComparisonSession session)Saves custom settings for the specified node into the given merge settings container.protected voidsetObjectToContainerOnMerge(MergeContext context, ComparisonNode mergingNode, org.eclipse.emf.ecore.EObject mainContainer, org.eclipse.emf.ecore.EReference mainReference, org.eclipse.emf.ecore.EObject eObject)Sets the object to the given container on the MAIN side.booleansupportsCustomMerging(ComparisonNode node, IComparisonSession session)Tells whether the given node supports custom merging.booleansupportsMergingUsingExternalTool(ComparisonNode node, IComparisonSession session)Tells whether the given node supports merging using external tool.booleansupportsPrioritizedMerging(ComparisonNode node, IComparisonSession session)Tells whether the given node supports prioritized merging.protected voidtranslateReferencesInImportedObject(org.eclipse.emf.ecore.EObject eObject, MergeContext mergeContext)protected voidupdatePictureResourceFile(PictureDef mainPicture, PictureDef otherPicture, IMergeSession session)Updates the main picture resource file with the other picture resource.protected org.eclipse.emf.ecore.EObjectwrapOtherReference(MergeContext context, org.eclipse.emf.ecore.EObject otherObject, org.eclipse.emf.ecore.EReference eReference, org.eclipse.emf.ecore.EObject otherValue)- 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface com._1c.g5.v8.dt.compare.core.IComparisonParticipantableToBreakCorrespondence, addNewTopObjectToComparison, adoptExternalProperty, breakCorrespondence, breakMainSideCorrespondence, combineOneSideNodes, compare, createMergeContext, getDefaultMergeRule, getDefaultMustBeMerged, getModelPackage, getPotentialCorrespondingNodes, merge, retrieveComparedObjects, supports, updateComparison, validateMerge
 
- 
 
- 
- 
- 
Field Detail- 
scopeProviderprotected org.eclipse.xtext.scoping.IScopeProvider scopeProvider 
 - 
LOG_TYPESprotected static final boolean LOG_TYPES - See Also:
- Constant Field Values
 
 - 
topObjectFqnGenerator@Inject protected ITopObjectFqnGenerator topObjectFqnGenerator 
 - 
qualifiedNameFilePathConverter@Inject protected IQualifiedNameFilePathConverter qualifiedNameFilePathConverter 
 - 
pictureManager@Inject protected IPictureManager pictureManager 
 - 
projectFileSystemSupportProvider@Inject protected IProjectFileSystemSupportProvider projectFileSystemSupportProvider 
 
- 
 - 
Constructor Detail- 
AbstractEmfBasedComparisonParticipantprotected AbstractEmfBasedComparisonParticipant() Creates new participant instance with default comparison nodes factory.
 - 
AbstractEmfBasedComparisonParticipantprotected AbstractEmfBasedComparisonParticipant(ComparisonNodeFactory nodeFactory) Creates new participant instance with specific comparison nodes factory.- Parameters:
- nodeFactory- the node factory to use, cannot be- null
 
 
- 
 - 
Method Detail- 
prepareRenameOperationspublic List<IRenameOnMergeOperation> prepareRenameOperations(IMergeSession mergeSession, ComparisonContext context) Description copied from interface:IComparisonParticipantGets a list of rename operations prepared by this participant.- Specified by:
- prepareRenameOperationsin interface- IComparisonParticipant
- Parameters:
- mergeSession- the merge session, not- null
- context- the comparison context, not- null
- Returns:
- the list of rename operations, never null
 
 - 
clearpublic void clear() Description copied from interface:IComparisonParticipantClears the participant caches.- Specified by:
- clearin interface- IComparisonParticipant
 
 - 
supportsPrioritizedMergingpublic boolean supportsPrioritizedMerging(ComparisonNode node, IComparisonSession session) Description copied from interface:IComparisonParticipantTells whether the given node supports prioritized merging.- Specified by:
- supportsPrioritizedMergingin interface- IComparisonParticipant
- Parameters:
- node- the node to check, cannot be- null
- session- the comparison session, cannot be- null
- Returns:
- trueif the node supports prioritized merging,- falseotherwise
 
 - 
supportsCustomMergingpublic boolean supportsCustomMerging(ComparisonNode node, IComparisonSession session) Description copied from interface:IComparisonParticipantTells whether the given node supports custom merging.- Specified by:
- supportsCustomMergingin interface- IComparisonParticipant
- Parameters:
- node- the node to check, cannot be- null
- session- the comparison session, cannot be- null
- Returns:
- trueif the node supports custom merging,- falseotherwise
 
 - 
supportsMergingUsingExternalToolpublic boolean supportsMergingUsingExternalTool(ComparisonNode node, IComparisonSession session) Description copied from interface:IComparisonParticipantTells whether the given node supports merging using external tool.- Specified by:
- supportsMergingUsingExternalToolin interface- IComparisonParticipant
- Parameters:
- node- the comparison node to check, cannot be- null
- session- the comparison session, cannot be- null
- Returns:
- trueif the node supports merging using external tool,- falseotherwise
 
 - 
isExcludedFromComparisonpublic boolean isExcludedFromComparison(org.eclipse.emf.ecore.EStructuralFeature feature, AbstractComparedEmfObjects<?> comparedContextObjects, IComparisonSession session)Description copied from interface:IComparisonParticipantChecks whether the feature must be excluded from the comparison.- Specified by:
- isExcludedFromComparisonin interface- IComparisonParticipant
- Parameters:
- feature- the feature to check, cannot be- null
- comparedContextObjects- the triple of compared objects, cannot be- null
- session- the comparison session, cannot be- null
- Returns:
- trueif the feature must be excluded,- falseotherwise
 
 - 
onChildrenMergedpublic void onChildrenMerged(TopComparisonNode topNode, MergeContext context) Description copied from interface:IComparisonParticipantCalled when the child nodes of the specified top node have been merged.- Specified by:
- onChildrenMergedin interface- IComparisonParticipant
- Parameters:
- topNode- the top node, not- null
- context- Current merge operation context, not- null
 
 - 
getForcedDDRebuildScopepublic Map<String,IBmObject> getForcedDDRebuildScope(TopComparisonNode topNode, MergeContext context) Description copied from interface:IComparisonParticipantIn case if the merge process changes the top object it should supply information about affected DDs.- Specified by:
- getForcedDDRebuildScopein interface- IComparisonParticipant
- Parameters:
- topNode- The top node of the comparison model representing the merged object, not- null
- context- Current merge operation context, not- null
- Returns:
- The map of the affected DD segments and corresponding objects, may be empty, never null
 
 - 
adoptMainSideFeaturepublic org.eclipse.emf.ecore.EStructuralFeature adoptMainSideFeature(org.eclipse.emf.ecore.EStructuralFeature mainSideFeature, IComparisonSession session)Description copied from interface:IComparisonParticipantConverts, if possible, the main side feature into a other supported by the other side object.- Specified by:
- adoptMainSideFeaturein interface- IComparisonParticipant
- Parameters:
- mainSideFeature- the main side feature to convert, cannot be- null
- session- the comparison session, cannot be- null
- Returns:
- the converted feature applicable for other side object or null
 
 - 
saveCustomSettingspublic void saveCustomSettings(ComparisonNode node, SerializableMergeSettings container, IComparisonSession session) Description copied from interface:IComparisonParticipantSaves custom settings for the specified node into the given merge settings container. Does nothing if the node doesn't have any custom settings.- Specified by:
- saveCustomSettingsin interface- IComparisonParticipant
- Parameters:
- node- the comparison node to save custom settings for, cannot be- null
- container- the container of serializable settings, cannot be- null
- session- the comparison session, cannot be- null
 
 - 
restoreCustomSettingspublic void restoreCustomSettings(ComparisonNode node, SerializableMergeSettings container, IComparisonSession session) Description copied from interface:IComparisonParticipantRestores custom settings for the specified node from the given merge settings container.- Specified by:
- restoreCustomSettingsin interface- IComparisonParticipant
- Parameters:
- node- the comparison node to restore custom settings for, cannot be- null
- container- the container of serializable settings, cannot be- null
- session- the comparison session, cannot be- null
 
 - 
isCandidateForPotentialMergeProblemspublic boolean isCandidateForPotentialMergeProblems(ComparisonNode node, IComparisonSession session) Description copied from interface:IComparisonParticipantTells whether the given node may break the configuration if it is merged.- Specified by:
- isCandidateForPotentialMergeProblemsin interface- IComparisonParticipant
- Parameters:
- node- the node to check, cannot be- null
- session- the comparison session, cannot be- null
- Returns:
- trueif the node may break the configuration,- falseotherwise
 
 - 
getPotentialMergeProblemsDescriptionspublic List<PotentialMergeProblemDescription> getPotentialMergeProblemsDescriptions(ComparisonNode node, ComparisonContext comparisonContext) Description copied from interface:IComparisonParticipantReturns human-readable descriptions of potential merge problems if the the specified node is merged.- Specified by:
- getPotentialMergeProblemsDescriptionsin interface- IComparisonParticipant
- Parameters:
- node- the node to get merge problems descriptions for, cannot be- null
- comparisonContext- the comparison context, cannot be- null
- Returns:
- the list of descriptions, never null, can be empty if the node doesn't bring any merge problems
 
 - 
mergeUsingExternalToolpublic ExternalMergeToolResult mergeUsingExternalTool(ComparisonNode node, ComparisonContext comparisonContext, org.eclipse.core.runtime.IProgressMonitor monitor) Description copied from interface:IComparisonParticipantMerges nodes using an external tool that are supported by this participant.- Specified by:
- mergeUsingExternalToolin interface- IComparisonParticipant
- Parameters:
- node- the comparison node, cannot be- null
- comparisonContext- the comparison context, cannot be- null
- monitor- the progress monitor, cannot be- null
- Returns:
- the external merge tool result or nullif no nodes were merged
 
 - 
createResourceForImportedObjectprotected void createResourceForImportedObject(org.eclipse.emf.ecore.resource.Resource.Factory resourceFactory, org.eclipse.emf.ecore.EObject originalObject, org.eclipse.emf.ecore.EObject importedObject, MergeContext context)Creates resource using given factory for given imported object.- Parameters:
- resourceFactory- the factory, cannot be- null
- originalObject- the original object, cannot be- null
- importedObject- the imported object, cannot be- null
- the- current merge context, cannot be- null
 
 - 
createClassFeaturesInstanceprotected AbstractEmfBasedComparisonParticipant.EObjectClassFeatures createClassFeaturesInstance() Creates new instance ofAbstractEmfBasedComparisonParticipant.EObjectClassFeaturesclass. Override in descendants if the class is to be extended.- Returns:
- the instance of AbstractEmfBasedComparisonParticipant.EObjectClassFeaturesclass, nevernull
 
 - 
getClassFeaturesprotected AbstractEmfBasedComparisonParticipant.EObjectClassFeatures getClassFeatures(org.eclipse.emf.ecore.EObject object, IComparisonSession session) Returns lists of features of the given EObject.- Parameters:
- object- the object to get class features for, cannot be- null
- session- the comparison session, cannot be- null
- Returns:
- the filled AbstractEmfBasedComparisonParticipant.EObjectClassFeaturesinstance, nevernull
 
 - 
getClassFeaturesprotected AbstractEmfBasedComparisonParticipant.EObjectClassFeatures getClassFeatures(AbstractComparedEmfObjects<?> comparingObject, IComparisonSession session, boolean alwaysRecalculate) Returns lists of features of the given EObjects being compared.- Parameters:
- comparingObject- the comparing object, cannot be- null
- session- the comparison session, cannot be- null
- alwaysRecalculate- tells whether EObject class features should be always recalculated
- Returns:
- the filled AbstractEmfBasedComparisonParticipant.EObjectClassFeaturesinstance, nevernull
 
 - 
getFeatureTypeDescriptionprotected String getFeatureTypeDescription(org.eclipse.emf.ecore.EStructuralFeature feature) 
 - 
compareValueprotected ComparisonFlags compareValue(TopComparisonNode topParent, LazyNodeProvider<? extends ComparisonNode> parentNodeProvider, AbstractComparedEmfObjects<?> parentComparedObjects, ComparedFeatures<?> comparedFeatures, ComparisonContext comparisonContext) 
 - 
calculateCompareValueFlagsprotected ComparisonFlags calculateCompareValueFlags(AbstractComparedEmfObjects<?> comparingObject, ComparedObjects<Object> values, ComparedFeatures<?> comparedFeatures, ComparisonContext comparisonContext) 
 - 
compareReferenceprotected ComparisonFlags compareReference(TopComparisonNode topParent, LazyNodeProvider<? extends ComparisonNode> nodeProvider, AbstractComparedEmfObjects<?> comparingObject, ComparedFeatures<org.eclipse.emf.ecore.EReference> comparedReferences, ComparisonContext comparisonContext) Compares a non-containment reference feature.- Parameters:
- topParent- the top parent node, cannot be- null
- nodeProvider- the provider of the node hosting the compared EObject, cannot be- null
- comparingObject- the triple of parent objects containing the given feature, cannot be- null
- comparedReferences- the triple of reference features to be compared, cannot be- null
- comparisonContext- the current comparison context, cannot be- null
- Returns:
- the resulting flags, never null
 
 - 
getSingleReferenceSymlinkprotected String getSingleReferenceSymlink(org.eclipse.emf.ecore.EObject contextObject, org.eclipse.emf.ecore.EReference reference, IComparisonSession session, ComparisonSide side) Returns a symbolic link for an object defined by a single reference from the given context object.- Parameters:
- contextObject- the context object owning the feature, cannot be- null
- reference- the single reference feature, cannot be- null
- session- the comparison session, cannot be- null
- side- the comparison side where the context object lies, cannot be- null
- Returns:
- symbolic link or nullif there is no target object indentified by a symbolic name in the specified context object
 
 - 
getMultiReferenceSymlinksprotected List<String> getMultiReferenceSymlinks(org.eclipse.emf.ecore.EObject contextObject, org.eclipse.emf.ecore.EReference reference, IComparisonSession session, ComparisonSide side) Returns list of symbolic links for objects referenced by the specified multi-reference feature from the specified context object.- Parameters:
- contextObject- the context object owning the feature, cannot be- null
- reference- the multi-reference feature, cannot be- null
- session- the comparison session, cannot be- null
- side- the comparison side where the context object lies, cannot be- null
- Returns:
- list of symbolic links, may be empty, never null
 
 - 
getMultiReferenceValueSymlinkprotected String getMultiReferenceValueSymlink(org.eclipse.emf.ecore.EObject contextObject, org.eclipse.emf.ecore.EReference reference, org.eclipse.emf.ecore.EObject targetObject, IComparisonSession session, ComparisonSide side) Returns symbolic link of the specified target object lying into collection of referencing objects specified by the given multi-reference feature.- Parameters:
- contextObject- the context object owning the multi-reference feature, cannot be- null
- reference- the multi-reference feature, cannot be- null
- targetObject- the object to get symbolic link for, cannot be- null
- session- the comparison session, cannot be- null
- side- the comparison side where the context object lies, cannot be- null
- Returns:
- symbolic link or nullin case the target object cannot be indentified by a symbolic name in the specified context object
 
 - 
compareEmfContainmentprotected ComparisonFlags compareEmfContainment(TopComparisonNode topParent, LazyNodeProvider<? extends ComparisonNode> nodeProvider, AbstractComparedEmfObjects<?> comparingObject, ComparedFeatures<org.eclipse.emf.ecore.EReference> comparedReferences, AbstractEmfBasedComparisonParticipant.BmIdsWrapper childBmIds, ComparisonContext comparisonContext) Compares containment feature.- Parameters:
- topParent- the top parent comparison node, cannot be- null
- nodeProvider- the lazy provider for the parent comparison node, cannot be- null
- comparingObject- the triple of parent objects containing the specified feature, cannot be- null
- comparedReferences- the containment features to be compared, cannot be- null
- childBmIds- collector of indexes of child nodes to be compared later, cannot be- null
- comparisonContext- the comparison context, cannot be- null
- Returns:
- the resulting comparison flags, never null
 
 - 
isUnmatchableContainmentprotected boolean isUnmatchableContainment(org.eclipse.emf.ecore.EReference reference) Checks whether the specified containment feature cannot be matched by an identity-based matcher.- Parameters:
- reference- the containment feature to check
- Returns:
- trueif the feature cannot be matched by an identity matcher
 
 - 
matchEmfObjectsprotected Collection<MatchedEmfObjects> matchEmfObjects(TopComparisonNode topNode, AbstractComparedEmfObjects<?> comparingObject, ComparedFeatures<org.eclipse.emf.ecore.EReference> comparedReferences, ComparisonContext comparisonContext, ComparisonFlags parentFlags) 
 - 
compareEmfObjectprotected ComparisonFlags compareEmfObject(TopComparisonNode topParent, LazyNodeProvider<? extends ComparisonNode> nodeProvider, AbstractComparedEmfObjects<?> comparingObject, AbstractEmfBasedComparisonParticipant.BmIdsWrapper childBmIds, ComparisonContext comparisonContext) 
 - 
compareOneSideObjectprotected ComparisonFlags compareOneSideObject(TopComparisonNode topParent, LazyNodeProvider<? extends ComparisonNode> nodeProvider, AbstractComparedEmfObjects<?> comparingObject, AbstractEmfBasedComparisonParticipant.BmIdsWrapper childBmIds, ComparisonContext comparisonContext) Compares one-side object's triple.- Parameters:
- topParent- the top parent node, cannot be- null
- nodeProvider- the parent node provider, cannot be- null
- comparingObject- the triple of objects being compared, cannot be- null
- childBmIds- the wrapper of child object indices, can be- null
- comparisonContext- the comparison context , cannot be- null
- Returns:
- the result of comparison, never null
 
 - 
getFeaturesToCompareForOneSideObjectprotected List<org.eclipse.emf.ecore.EReference> getFeaturesToCompareForOneSideObject(AbstractComparedEmfObjects<?> comparingObjects) Returns list of features to be always compared for one-side nodes.- Parameters:
- comparingObjects- the triple of objects being compared, cannot be- null
- Returns:
- the list of feature to be compared for one-side nodes, never null
 
 - 
getCustomMatcherprotected IEmfObjectMatcher getCustomMatcher(TopComparisonNode topNode, org.eclipse.emf.ecore.EReference reference, ComparisonContext comparisonContext) Returns a custom matcher for the specified reference.- Parameters:
- topNode- the top node
- reference- the reference to get a custom matcher for
- comparisonContext- the current comparison context, cannot be- null
- Returns:
- a custom matcher or nullif no custom matcher can be found
 
 - 
assertEClassesMatchprotected static void assertEClassesMatch(org.eclipse.emf.ecore.EObject object1, org.eclipse.emf.ecore.EObject object2)Asserts whether the two specifiedEObjects have identicalEClasses.- Parameters:
- object1- the first- EObject
- object2- the second- EObject
 
 - 
areDifferentEClassObjectsMergeableprotected boolean areDifferentEClassObjectsMergeable(org.eclipse.emf.ecore.EObject main, org.eclipse.emf.ecore.EObject other, ComparisonContext comparisonContext)
 - 
mergeEmfPropertiesprotected void mergeEmfProperties(MergeContext context, ComparisonNode mergingNode, AbstractComparedEmfObjects<?> mergingObjects) 
 - 
getTopNodeprotected ComparisonNode getTopNode(ComparisonNode node) 
 - 
importEmfObjectprotected org.eclipse.emf.ecore.EObject importEmfObject(MergeContext context, ComparisonNode mergingNode, org.eclipse.emf.ecore.EObject otherObject) 
 - 
findChildNodeByFeatureprotected final <T extends FeatureComparisonNode> T findChildNodeByFeature(IComparisonSession session, ComparisonNode parent, org.eclipse.emf.ecore.EStructuralFeature feature) 
 - 
findChildNodeByMatchedIdprotected final ContainmentComparisonNode findChildNodeByMatchedId(IComparisonSession session, ComparisonNode parent, MatchedEmfObjects matched) 
 - 
mergeOtherContainmentprotected void mergeOtherContainment(MergeContext context, ContainmentFeatureComparisonNode mergingNode, AbstractComparedEmfObjects<?> mergingObjects, ComparedFeatures<org.eclipse.emf.ecore.EReference> comparedReferences) 
 - 
translateReferencesInImportedObjectprotected void translateReferencesInImportedObject(org.eclipse.emf.ecore.EObject eObject, MergeContext mergeContext)
 - 
mergeEmfReferenceprotected void mergeEmfReference(MergeContext context, ReferenceFeatureComparisonNode mergingNode, AbstractComparedEmfObjects<?> mergingObjects, ComparedFeatures<org.eclipse.emf.ecore.EReference> comparedReferences) 
 - 
wrapOtherReferenceprotected org.eclipse.emf.ecore.EObject wrapOtherReference(MergeContext context, org.eclipse.emf.ecore.EObject otherObject, org.eclipse.emf.ecore.EReference eReference, org.eclipse.emf.ecore.EObject otherValue) 
 - 
adaptOtherReferenceprotected org.eclipse.emf.ecore.EObject adaptOtherReference(MergeContext context, org.eclipse.emf.ecore.EObject otherObject, org.eclipse.emf.ecore.EReference eReference, org.eclipse.emf.ecore.EObject otherValue, org.eclipse.emf.ecore.EObject mainObject) 
 - 
createImportedEObjectprotected abstract org.eclipse.emf.ecore.EObject createImportedEObject(org.eclipse.emf.ecore.EObject otherObject, IMergeSession mergeSession)
 - 
isFeatureWithCustomMergeprotected abstract boolean isFeatureWithCustomMerge(org.eclipse.emf.ecore.EStructuralFeature feature) 
 - 
getExternalPropertySymlinkprotected abstract String getExternalPropertySymlink(TopComparisonNode node, org.eclipse.emf.ecore.EReference externalProperty, ComparisonSide side, org.eclipse.emf.ecore.EObject eObject) Returns the symbolic link (FQN) of the specified external property.- Parameters:
- node- the node with the external property
- externalProperty- the- EReferenceto the external property
- side- the comparison side
- eObject- the- EObjectreferencing the external property
- Returns:
- the symbolic link
 
 - 
getExternalPropertyQualifyingTypeprotected abstract String getExternalPropertyQualifyingType(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EReference externalProperty) Returns the EClass of the specified external property of the specified EObject.- Parameters:
- eObject-
- externalProperty-
- Returns:
 
 - 
hasConflictChangesInCollectionprotected boolean hasConflictChangesInCollection(ComparedFeatures<org.eclipse.emf.ecore.EReference> comparedReferences, Collection<? extends MatchedEmfObjects> matchedElements) Tells whether the collection being compared should be treated as containing conflicts.- Parameters:
- comparedReferences- the triple of many-features being compared, cannot be- null
- Returns:
- trueif the collection should be treated as containing conflicts,- falseotherwise
 
 - 
comparePictureResourceprotected ComparisonFlags comparePictureResource(AbstractComparedEmfObjects<?> comparingObject, ComparisonContext comparisonContext) Compares picture resource for comparedPictureDef's.- Parameters:
- comparingObject- the triple of- PictureDef's to be compared, can not be- null
- comparisonContext- the current comparison context, can not be- null
- Returns:
- the resulting flags, never null
 
 - 
importPictureResourceFileprotected void importPictureResourceFile(PictureDef picture, MergeContext context) Creates aIPostponedFileOperationto import the other side picture resource.- Parameters:
- picture- the other side picture to create an add operation for, can not be- null
- context- the merge context, can not be- null
 
 - 
updatePictureResourceFileprotected void updatePictureResourceFile(PictureDef mainPicture, PictureDef otherPicture, IMergeSession session) Updates the main picture resource file with the other picture resource. If the other resource doesn't exist the main resource file will be deleted.- Parameters:
- mainPicture- the main side picture, can not be- null
- otherPicture- the other side picture, can not be- null
- session- the merge session, can not be- null
 
 - 
deletePictureResourceFileprotected void deletePictureResourceFile(PictureDef mainPicture, IMergeSession session) Deletes the main picture resource file.- Parameters:
- mainPicture- the main side picture, can not be- null
- session- the merge session, can not be- null
 
 - 
getPictureResourcePathprotected Path getPictureResourcePath(PictureDef picture, IComparisonDataSource dataSource) Returns the picture resource path for the given data source. By default returnsnull.- Parameters:
- picture- the picture to get resource path for, cannot be- null
- dataSource- the comparison data source, cannot be- null
- Returns:
- the picture resource path, may be null
 
 - 
adoptEClassToImportprotected org.eclipse.emf.ecore.EClass adoptEClassToImport(org.eclipse.emf.ecore.EClass otherEClass, IComparisonSession session)Converts, if possible, the other sideEClassinto a main supported by the main side to import object.- Parameters:
- otherEClass- the other side- EClassto convert, cannot be- null
- session- the comparison session, cannot be- null
- Returns:
- the converted EClass, nevernull
 
 - 
getOtherSideFeatureprotected org.eclipse.emf.ecore.EStructuralFeature getOtherSideFeature(org.eclipse.emf.ecore.EStructuralFeature mainSideFeature, IComparisonSession session)Converts, if possible, the main side feature into a other supported by the other side object. Returns the given main side feature if no convert was found.- Parameters:
- mainSideFeature- the main side feature to convert, cannot be- null
- session- the comparison session, cannot be- null
- Returns:
- the converted feature applicable for other side object or given main side feature
 if no convert was found, never null
 
 - 
needCreateOneSideNodeprotected static boolean needCreateOneSideNode(AbstractComparedEmfObjects<?> comparedObjects, ComparisonFlags nodeFlags, boolean threeWay) Checks whether we need to create one-side node for the compared objects.- Parameters:
- comparedObjects- the compared objects to check, must have object only on MAIN or on OTHER side, cannot be- null
- nodeFlags- the node flags calculated for it, cannot be- null
- threeWay- is three-way merge
- Returns:
- trueif need to create the node in the model,- falseotherwise
 
 - 
getQualifiedNameprotected static org.eclipse.xtext.naming.QualifiedName getQualifiedName(String symlink) Splits the given symlink into segments and returns them as aQualifiedName.- Parameters:
- symlink- the given symlink, can not be- null
- Returns:
- a qualified name, never null
 
 - 
removeObjectFromListOnMergeprotected void removeObjectFromListOnMerge(MergeContext context, org.eclipse.emf.common.util.EList<org.eclipse.emf.ecore.EObject> mainList, org.eclipse.emf.ecore.EObject mainObject) Removes the given object from the given list on the MAIN side during the merge phase. Override in descendants if need customized behavior on deletion.- Parameters:
- context- the merge context, cannot be- null
- mainList- the list to remove the object from, cannot be- null
- mainObject- the object to be removed, cannot be- null
 
 - 
removeObjectFromContainerOnMergeprotected void removeObjectFromContainerOnMerge(MergeContext context, org.eclipse.emf.ecore.EObject mainContainer, org.eclipse.emf.ecore.EReference mainReference, org.eclipse.emf.ecore.EObject mainObject) Removes the given object from the container on the MAIN side during the merge phase. Override in descendants if need customized behavior on deletion.- Parameters:
- context- the merge context, cannot be- null
- mainContainer- the container to remove from, cannot be- null
- mainReference- the reference to remove object by, cannot be- null
- mainObject- the object to be removed, cannot be- null
 
 - 
setObjectToContainerOnMergeprotected void setObjectToContainerOnMerge(MergeContext context, ComparisonNode mergingNode, org.eclipse.emf.ecore.EObject mainContainer, org.eclipse.emf.ecore.EReference mainReference, org.eclipse.emf.ecore.EObject eObject) Sets the object to the given container on the MAIN side.- Parameters:
- context- the merge context, cannot be- null
- mergingNode- the comparison node related to the merging feature, cannot be- null
- mainContainer- the container to add into, cannot be- null
- mainReference- the reference to add object by, cannot be- null
- eObject- the object to be added, cannot be- null
 
 - 
isBmIdMayChangeOnMergeprotected boolean isBmIdMayChangeOnMerge(IBmObject bmObject) Tells whether bmId of an object may change during the merge phase. Override in descendants for specific types.- Parameters:
- bmObject- the object to be checked, cannot be- null
- Returns:
- trueif bmId may change,- falseotherwise
 
 - 
getNodeFactoryprotected ComparisonNodeFactory getNodeFactory() Gets factory to create new comparison nodes.- Returns:
- the comparison node factory instance, never null
 
 - 
checkForOneSideConflictprotected void checkForOneSideConflict(IComparisonSession session, IComparedObjects<? extends org.eclipse.emf.ecore.EObject> comparingObject, ComparisonFlags flags) 
 
- 
 
-