diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/extension/.ratings b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/extension/.ratings index fcb76b1356220c49d17dc12cb2a3ae7d5c58639c..aaaabe0a705cc5fcd0e0cd40cc1fe3e9533b594e 100644 --- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/extension/.ratings +++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/extension/.ratings @@ -6,7 +6,7 @@ IEclipseResourceStorageLocationProvider.java 0ab7f304d52a9d86f01f66e308e9a7ca420 IElementCompositor.java 5b0ab1732f71b3f8467e0276c844f0dd549e191f GREEN ILibraryElementHandler.java 00ef5b25c63b8570006e6f6748aed0da1f33a5f1 GREEN ILogMessageHandler.java 9ab53e836a095ef00fd84ecc0375167edf593b46 GREEN -IMigrationProvider.java cbf0d03c7b89ecdba79a67ae60a547fe058dd5d8 YELLOW +IMigrationProvider.java c194c8aaaecc84c6e476231362f7c815592026fc YELLOW IPrototypeProvider.java d5e3dbae19b5654caf28b81da6b1609d3c12be12 GREEN IStorageProvider.java d9b14cdd254d0c956dc5715c1c4d4d955a705dd5 GREEN ITransformationProvider.java a4ee2ea08720bb2fce29806062eb01499bb5071e GREEN diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/extension/IMigrationProvider.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/extension/IMigrationProvider.java index cbf0d03c7b89ecdba79a67ae60a547fe058dd5d8..c194c8aaaecc84c6e476231362f7c815592026fc 100644 --- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/extension/IMigrationProvider.java +++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/extension/IMigrationProvider.java @@ -49,7 +49,7 @@ public interface IMigrationProvider extends IObjectAware<ITopLevelElement> { * in the model. This can be useful to detect features coming from old models and can be then * translated to the new model by a migrator. * - * @return all features which could not be migrated. + * @return all features which were migrated. */ Map<EObject, AnyType> migrate(ITopLevelElement modelElement, Map<EObject, AnyType> unknownFeatures); diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/.ratings b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/.ratings index cb265f46503a4e6f4c3c2143aef3ec6bc1bdb0e6..cc7456cfe2f37bb8a014bc9e46e9dc4fcbf45dff 100644 --- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/.ratings +++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/.ratings @@ -7,7 +7,7 @@ ElementCompositorService.java 98c5d27e09881e60aa4f87c1ac0c7787cdec9f7c GREEN LibraryPrototypeProvider.java b77eddbdca78f561ffb1233e98817be361c690ae GREEN LibraryService.java d22671ba820466062852c15873698adf28960d94 GREEN LoggingService.java da784259f7b456b54bf75c41ec268f64919ce78d GREEN -MigrationService.java f968fcb7de02f78e7d43c0654e958611296539d0 YELLOW +MigrationService.java b0f05859e33a85bc285a05056d5c16448a4cb4f0 YELLOW PersistencyService.java 103eef642c038ef63fa49b743d803aaa3fea2724 GREEN PrototypeService.java 18c3db05ab11f189a9711bf241c3c7f35c954a9e GREEN ToolingKernelInternal.java d624a5f6b237ce993e150e2b8d1b4390e3fc8f7a GREEN diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/MigrationService.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/MigrationService.java index f968fcb7de02f78e7d43c0654e958611296539d0..b0f05859e33a85bc285a05056d5c16448a4cb4f0 100644 --- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/MigrationService.java +++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/MigrationService.java @@ -119,26 +119,27 @@ public class MigrationService extends ObjectAwareServiceBase<IMigrationProvider> @Override public void run() { - Map<EObject, AnyType> featuresNotMigrated = new HashMap<EObject, AnyType>(); + Map<EObject, AnyType> migratedFeatures = new HashMap<EObject, AnyType>(); for(IMigrationProvider provider : getProviders(input)) { if(provider.needMigration(input, unknownFeatures)) { - featuresNotMigrated.putAll(provider.migrate(input, unknownFeatures)); + migratedFeatures.putAll(provider.migrate(input, unknownFeatures)); } } for(IMigrationProvider provider : getProviders(input)) { - if(provider.needMigration(input, featuresNotMigrated)) { + if(provider.needMigration(input, migratedFeatures)) { error(ToolingKernelActivator.getDefault(), "Migrating " + input.getSaveableName() + " failed: A need for " + "migration is indicated although the migration was " + "already performed. Please fix the migrator (or model)."); } } - if(!featuresNotMigrated.isEmpty()) { + unknownFeatures.entrySet().removeAll(migratedFeatures.entrySet()); + if(!unknownFeatures.isEmpty()) { error(ToolingKernelActivator.getDefault(), input.getSaveableName() + " contains one or more unknown feature(s) which will be deleted: " + featuresToStrings(unknownFeatures)); - for(Entry<EObject, AnyType> e : featuresNotMigrated.entrySet()) { + for(Entry<EObject, AnyType> e : unknownFeatures.entrySet()) { EcoreUtil.delete(e.getKey(), true); } }