diff options
Diffstat (limited to 'plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/EMFComparePredicates.java')
-rw-r--r-- | plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/EMFComparePredicates.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/EMFComparePredicates.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/EMFComparePredicates.java index d005ebfb6..1c480d426 100644 --- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/EMFComparePredicates.java +++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/EMFComparePredicates.java @@ -19,6 +19,8 @@ import static com.google.common.base.Predicates.not; import static com.google.common.base.Predicates.or; import static com.google.common.collect.Iterables.all; import static com.google.common.collect.Iterables.any; +import static org.eclipse.emf.compare.ConflictKind.REAL; +import static org.eclipse.emf.compare.DifferenceKind.ADD; import static org.eclipse.emf.compare.internal.utils.ComparisonUtil.isDeleteOrUnsetDiff; import static org.eclipse.emf.compare.internal.utils.DiffUtil.getAllAtomicRefiningDiffs; import static org.eclipse.emf.compare.internal.utils.DiffUtil.getAllRefiningDiffs; @@ -350,6 +352,30 @@ public final class EMFComparePredicates { } /** + * Indicates whether a diff is part of a real add/add conflict. + * + * @return a predicate to check if a diff belongs to an add/add conflict. + * @since 3.4 + */ + public static Predicate<Diff> isInRealAddAddConflict() { + return new Predicate<Diff>() { + public boolean apply(Diff input) { + Conflict conflict = input.getConflict(); + if (conflict != null) { + if (conflict.getKind() != REAL) { + return false; + } else { + if (all(conflict.getDifferences(), ofKind(ADD))) { + return true; + } + } + } + return false; + } + }; + } + + /** * This predicate can be used to check whether a given Diff represents the deletion of a value from a * multi-valued reference going by {@code referenceName} on an EObject which name matches * {@code qualifiedName}. |