/** * {@inheritDoc} * * @see org.eclipse.emf.compare.provider.ReferenceChangeItemProvider#getImage(java.lang.Object) */ @Override public Object getImage(Object object) { ReferenceChange refChange = (ReferenceChange) object; Object image = AdapterFactoryUtil.getImage(getRootAdapterFactory(), refChange.getValue()); return image; }
/** * {@inheritDoc} * * @see org.eclipse.emf.compare.provider.ReferenceChangeItemProvider#getText(java.lang.Object) */ @Override public String getText(Object object) { final ReferenceChange refChange = (ReferenceChange) object; final String valueText = getValueText(refChange); final String referenceText = getReferenceText(refChange); String remotely = ""; // $NON-NLS-1$ if (refChange.getSource() == DifferenceSource.RIGHT) { remotely = "remotely "; // $NON-NLS-1$ } String ret = ""; // $NON-NLS-1$ switch (refChange.getKind()) { case ADD: ret = valueText + " has been " + remotely + "added to " + referenceText; //$NON-NLS-1$ //$NON-NLS-2$ break; case DELETE: ret = valueText + " has been " + remotely + "deleted from " + referenceText; //$NON-NLS-1$ //$NON-NLS-2$ break; case CHANGE: String changeText = changeText(refChange, refChange.getReference()); ret = referenceText + " " + valueText + " has been " + remotely + changeText; //$NON-NLS-1$ //$NON-NLS-2$ break; case MOVE: ret = valueText + " has been " + remotely + "moved in " + referenceText; //$NON-NLS-1$ //$NON-NLS-2$ break; default: throw new IllegalStateException( "Unsupported " + DifferenceKind.class.getSimpleName() // $NON-NLS-1$ + " value: " + refChange.getKind()); // $NON-NLS-1$ } return ret; }
/** * {@inheritDoc} * * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getForeground(java.lang.Object) */ @Override public Object getForeground(Object object) { ReferenceChange referenceChange = (ReferenceChange) object; switch (referenceChange.getState()) { case MERGED: case DISCARDED: return URI.createURI("color://rgb/156/156/156"); // $NON-NLS-1$ default: return super.getForeground(object); } }
protected String getValueText(final ReferenceChange refChange) { String value = AdapterFactoryUtil.getText(getRootAdapterFactory(), refChange.getValue()); if (value == null) { value = "<null>"; // $NON-NLS-1$ } else { value = org.eclipse.emf.compare.provider.spec.Strings.elide(value, 50, "..."); // $NON-NLS-1$ } return value; }
/** * {@inheritDoc} * * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getChildren(java.lang.Object) */ @Override public Collection<?> getChildren(Object object) { Collection<?> superChildren = super.getChildren(object); List<? super Object> ret = newArrayList(superChildren); ReferenceChange referenceChange = (ReferenceChange) object; EReference reference = referenceChange.getReference(); if (reference.isContainment()) { Match matchOfValue = referenceChange.getMatch().getComparison().getMatch(referenceChange.getValue()); if (matchOfValue != null) { Collection<?> children = getChildren(matchOfValue); children.remove(referenceChange); ret.addAll(children); } } return ImmutableList.copyOf(filter(ret, not(MatchItemProviderSpec.REFINED_DIFF))); }
protected String getReferenceText(final ReferenceChange refChange) { return refChange.getReference().getName(); }
/** * Tests the behavior of reference <code>requiredBy</code>'s accessors. * * @generated */ @Test public void testRequiredBy() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getDiff_RequiredBy(); ReferenceChange referenceChange = CompareFactory.eINSTANCE.createReferenceChange(); referenceChange.eAdapters().add(new MockEAdapter()); org.eclipse.emf.compare.Diff requiredByValue = org.eclipse.emf.compare.CompareFactory.eINSTANCE.createDiff(); List<org.eclipse.emf.compare.Diff> listRequiredBy = new ArrayList<org.eclipse.emf.compare.Diff>(1); listRequiredBy.add(requiredByValue); assertFalse(referenceChange.eIsSet(feature)); assertTrue(referenceChange.getRequiredBy().isEmpty()); referenceChange.getRequiredBy().add(requiredByValue); assertTrue(notified); notified = false; assertTrue(referenceChange.getRequiredBy().contains(requiredByValue)); assertSame(referenceChange.getRequiredBy(), referenceChange.eGet(feature)); assertSame(referenceChange.getRequiredBy(), referenceChange.eGet(feature, false)); assertTrue(referenceChange.eIsSet(feature)); assertTrue(requiredByValue.getRequires().contains(referenceChange)); referenceChange.eUnset(feature); assertTrue(notified); notified = false; assertTrue(referenceChange.getRequiredBy().isEmpty()); assertSame(referenceChange.getRequiredBy(), referenceChange.eGet(feature)); assertSame(referenceChange.getRequiredBy(), referenceChange.eGet(feature, false)); assertFalse(referenceChange.eIsSet(feature)); assertFalse(requiredByValue.getRequires().contains(referenceChange)); referenceChange.eSet(feature, listRequiredBy); assertTrue(notified); notified = false; assertTrue(referenceChange.getRequiredBy().contains(requiredByValue)); assertSame(referenceChange.getRequiredBy(), referenceChange.eGet(feature)); assertSame(referenceChange.getRequiredBy(), referenceChange.eGet(feature, false)); assertTrue(referenceChange.eIsSet(feature)); assertTrue(requiredByValue.getRequires().contains(referenceChange)); }
/** * Tests the behavior of attribute <code>kind</code>'s accessors. * * @generated */ @Test public void testKind() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getDiff_Kind(); ReferenceChange referenceChange = CompareFactory.eINSTANCE.createReferenceChange(); referenceChange.eAdapters().add(new MockEAdapter()); org.eclipse.emf.compare.DifferenceKind kindValue = (org.eclipse.emf.compare.DifferenceKind) feature.getDefaultValue(); for (org.eclipse.emf.compare.DifferenceKind aDifferenceKind : org.eclipse.emf.compare.DifferenceKind.VALUES) { if (kindValue.getValue() != aDifferenceKind.getValue()) { kindValue = aDifferenceKind; break; } } assertFalse(referenceChange.eIsSet(feature)); assertEquals(feature.getDefaultValue(), referenceChange.getKind()); referenceChange.setKind(kindValue); assertTrue(notified); notified = false; assertEquals(kindValue, referenceChange.getKind()); assertEquals(referenceChange.getKind(), referenceChange.eGet(feature)); assertTrue(referenceChange.eIsSet(feature)); referenceChange.eUnset(feature); assertTrue(notified); notified = false; assertEquals(feature.getDefaultValue(), referenceChange.getKind()); assertEquals(referenceChange.getKind(), referenceChange.eGet(feature)); assertFalse(referenceChange.eIsSet(feature)); referenceChange.eSet(feature, kindValue); assertTrue(notified); notified = false; assertEquals(kindValue, referenceChange.getKind()); assertEquals(referenceChange.getKind(), referenceChange.eGet(feature)); assertTrue(referenceChange.eIsSet(feature)); referenceChange.setKind(null); assertTrue(notified); notified = false; assertEquals(feature.getDefaultValue(), referenceChange.getKind()); assertEquals(referenceChange.getKind(), referenceChange.eGet(feature)); assertFalse(referenceChange.eIsSet(feature)); }
/** * Tests the behavior of reference <code>value</code>'s accessors. * * @generated */ @Test public void testValue() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getReferenceChange_Value(); ReferenceChange referenceChange = CompareFactory.eINSTANCE.createReferenceChange(); referenceChange.eAdapters().add(new MockEAdapter()); org.eclipse.emf.ecore.EObject valueValue = org.eclipse.emf.ecore.EcoreFactory.eINSTANCE.createEObject(); assertFalse(referenceChange.eIsSet(feature)); assertNull(referenceChange.getValue()); referenceChange.setValue(valueValue); assertTrue(notified); notified = false; assertSame(valueValue, referenceChange.getValue()); assertSame(referenceChange.getValue(), referenceChange.eGet(feature)); assertSame(referenceChange.getValue(), referenceChange.eGet(feature, false)); assertTrue(referenceChange.eIsSet(feature)); referenceChange.eUnset(feature); assertTrue(notified); notified = false; assertNull(referenceChange.getValue()); assertSame(referenceChange.getValue(), referenceChange.eGet(feature)); assertSame(referenceChange.getValue(), referenceChange.eGet(feature, false)); assertFalse(referenceChange.eIsSet(feature)); referenceChange.setValue(valueValue); assertTrue(notified); notified = false; assertSame(valueValue, referenceChange.getValue()); assertSame(referenceChange.getValue(), referenceChange.eGet(feature)); assertSame(referenceChange.getValue(), referenceChange.eGet(feature, false)); assertTrue(referenceChange.eIsSet(feature)); referenceChange.eSet(feature, valueValue); assertTrue(notified); notified = false; assertSame(valueValue, referenceChange.getValue()); assertSame(referenceChange.getValue(), referenceChange.eGet(feature)); assertSame(referenceChange.getValue(), referenceChange.eGet(feature, false)); assertTrue(referenceChange.eIsSet(feature)); referenceChange.setValue(null); assertTrue(notified); notified = false; assertNull(referenceChange.getValue()); assertSame(feature.getDefaultValue(), referenceChange.getValue()); assertSame(referenceChange.getValue(), referenceChange.eGet(feature)); assertSame(referenceChange.getValue(), referenceChange.eGet(feature, false)); assertFalse(referenceChange.eIsSet(feature)); }
/** * Tests the behavior of reference <code>conflict</code>'s accessors. * * @generated */ @Test public void testConflict() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getDiff_Conflict(); ReferenceChange referenceChange = CompareFactory.eINSTANCE.createReferenceChange(); referenceChange.eAdapters().add(new MockEAdapter()); org.eclipse.emf.compare.Conflict conflictValue = org.eclipse.emf.compare.CompareFactory.eINSTANCE.createConflict(); assertFalse(referenceChange.eIsSet(feature)); assertNull(referenceChange.getConflict()); referenceChange.setConflict(conflictValue); assertTrue(notified); notified = false; assertSame(conflictValue, referenceChange.getConflict()); assertSame(referenceChange.getConflict(), referenceChange.eGet(feature)); assertSame(referenceChange.getConflict(), referenceChange.eGet(feature, false)); assertTrue(referenceChange.eIsSet(feature)); assertTrue(conflictValue.getDifferences().contains(referenceChange)); referenceChange.eUnset(feature); assertTrue(notified); notified = false; assertNull(referenceChange.getConflict()); assertSame(referenceChange.getConflict(), referenceChange.eGet(feature)); assertSame(referenceChange.getConflict(), referenceChange.eGet(feature, false)); assertFalse(referenceChange.eIsSet(feature)); assertFalse(conflictValue.getDifferences().contains(referenceChange)); referenceChange.setConflict(conflictValue); assertTrue(notified); notified = false; assertSame(conflictValue, referenceChange.getConflict()); assertSame(referenceChange.getConflict(), referenceChange.eGet(feature)); assertSame(referenceChange.getConflict(), referenceChange.eGet(feature, false)); assertTrue(referenceChange.eIsSet(feature)); assertTrue(conflictValue.getDifferences().contains(referenceChange)); referenceChange.eSet(feature, conflictValue); assertTrue(notified); notified = false; assertSame(conflictValue, referenceChange.getConflict()); assertSame(referenceChange.getConflict(), referenceChange.eGet(feature)); assertSame(referenceChange.getConflict(), referenceChange.eGet(feature, false)); assertTrue(referenceChange.eIsSet(feature)); assertTrue(conflictValue.getDifferences().contains(referenceChange)); referenceChange.setConflict(null); assertTrue(notified); notified = false; assertNull(referenceChange.getConflict()); assertSame(feature.getDefaultValue(), referenceChange.getConflict()); assertSame(referenceChange.getConflict(), referenceChange.eGet(feature)); assertSame(referenceChange.getConflict(), referenceChange.eGet(feature, false)); assertFalse(referenceChange.eIsSet(feature)); assertFalse(conflictValue.getDifferences().contains(referenceChange)); }
/** * {@inheritDoc} * * @see org.eclipse.emf.compare.provider.ReferenceChangeItemProvider#getText(java.lang.Object) */ @Override public String getText(Object object) { final ReferenceChange refChange = (ReferenceChange) object; EObject value = refChange.getValue(); final String valueName = CompareItemProviderAdapterFactorySpec.getText(adapterFactory, value); String change = ""; if (refChange.getSource() == DifferenceSource.RIGHT) { change = "remotely "; } if (refChange.getKind() == DifferenceKind.ADD) { change += "added to"; } else if (refChange.getKind() == DifferenceKind.DELETE) { change += "deleted from"; } else if (refChange.getKind() == DifferenceKind.CHANGE) { change += "changed from"; } else { change += "moved from"; } final String objectName; if (refChange.getMatch().getLeft() instanceof ENamedElement) { objectName = ((ENamedElement) refChange.getMatch().getLeft()).getName(); } else if (refChange.getMatch().getRight() instanceof ENamedElement) { objectName = ((ENamedElement) refChange.getMatch().getRight()).getName(); } else if (refChange.getMatch().getOrigin() instanceof ENamedElement) { objectName = ((ENamedElement) refChange.getMatch().getOrigin()).getName(); } else { objectName = ""; } return "value " + valueName + " has been " + change + " reference " + refChange.getReference().getName() + " of object " + objectName; }