diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java index 55392da57abfa987d1ea44464b02338bbae596f0..9a2d1d241b4fd7e5da5ad36653c21b051bab0cef 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java @@ -165,7 +165,7 @@ public class MarkerService implements IMarkerService, List<IConstraintViolation<? extends EObject>> checkResult = IConstraintCheckerService.INSTANCE .performAllConstraintChecksRecursively(element - .getTopLevelElement()); + .getRootModelElement()); synchronized (violationCache) { CacheEntry entry = getCacheEntry(element); entry.updateCacheEntries(checkResult); @@ -305,7 +305,7 @@ public class MarkerService implements IMarkerService, } } // project severity to parent - computeHighestSeverity(topElement.getTopLevelElement()); + computeHighestSeverity(topElement.getRootModelElement()); } /** Recursively projects highest severity from children to parents. */ diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeContentProvider.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeContentProvider.java index 03002457789a6b4a25927f2e98ccfd54f09117c2..bd190c8dc3ae010da3ecefafc6134a8740b65fd4 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeContentProvider.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeContentProvider.java @@ -47,7 +47,7 @@ public class NavigatorTreeContentProvider implements ITreeContentProvider { for (ITopLevelElement context : IPersistencyService.INSTANCE .getTopLevelElements()) { - result.add(context.getTopLevelElement()); + result.add(context.getRootModelElement()); } return result.toArray(); } diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/ITransformationProvider.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/ITransformationProvider.java index eb0082eab8c6914baa033bbfadc1c2d68f2e368d..fb21442350e51b9e34f46ef2c1757c90ca470d22 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/ITransformationProvider.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/ITransformationProvider.java @@ -24,24 +24,21 @@ import org.fortiss.tooling.kernel.service.ITransformationService; import org.fortiss.tooling.kernel.service.base.IObjectAware2; /** - * TODO: why do you mean with "extends the {@link ITransformationService}"? - * where is the extension? - * - * A transformation provider extends the {@link ITransformationService} with a - * concrete transformation from a source element into a target element. Since - * transformations may also produce intermediary data, which is not intended to - * be persisted, this class uses {@link Object} instead of {@link EObject}s - * only. + * A transformation provider represents a concrete transformation from a source + * element into a target element and is registered with the + * {@link ITransformationService}'s extension point. Since transformations may + * also produce intermediary data, which is not intended to be persisted, this + * class uses {@link Object} instead of {@link EObject}s only. * * @author hoelzl * @author $Author$ * @version $Rev$ - * @ConQAT.Rating RED Hash: 85C9BC59354ADFA207E0852126747DC3 + * @ConQAT.Rating YELLOW Hash: D798E691812994DC6321748E8CAC1C20 */ public interface ITransformationProvider extends IObjectAware2<Object, Object> { /** Returns the target class this provider can provide. */ - Class<? extends Object> getTargetClass(); + Class<?> getTargetClass(); /** * Returns whether this provider is able to become part of a chain, @@ -51,7 +48,7 @@ public interface ITransformationProvider extends IObjectAware2<Object, Object> { * {@link #canTransform(Object, ITransformationContext)} is called and the * concrete source object to be transformed cannot be handled. */ - boolean canHandleChainTransformation(Class<? extends Object> sourceClass, + boolean canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context); /** diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ITopLevelElement.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ITopLevelElement.java index 77a46249271fad8756cb4c79a73da6d82b385d8b..4bc037191ef7a197e5d2c5475c5eacf7a5107b95 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ITopLevelElement.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ITopLevelElement.java @@ -27,9 +27,9 @@ import org.fortiss.tooling.kernel.extension.IStorageProvider; /** * Interface for accessing top-level elements provided by - * {@link IStorageProvider}s. The context supports the typical methods like + * {@link IStorageProvider}s. This interface supports the typical methods like * running commands, listening to the command stack, undo and redo, a dirty - * state and a save mechanism. + * state and a save mechanism as well as accessing the root model element. * * <P> * Once an instance of this interface is provided to the kernel, the underlying @@ -40,18 +40,12 @@ import org.fortiss.tooling.kernel.extension.IStorageProvider; * @author hoelzl * @author $Author$ * @version $Rev$ - * @ConQAT.Rating RED Hash: 9226FD21C183EB5EBC673EE375282AA2 + * @ConQAT.Rating YELLOW Hash: DE8A819268F75497B61A48B6E32A648F */ public interface ITopLevelElement { - // TODO: Why does the interface ITopLevelElement have the method - // getTopLevelElement ? Shouldn't we rename this interface in e.g. - // IModelContext? - // in ProjectRootElementUtils we have - // IPersistencyService.INSTANCE.getTopLevelElementFor(element).getTopLevelElement().eContents() - // ----- so, a topLevelElement has another toplevelElement - /** Returns the top-level model element represented by this context. */ - EObject getTopLevelElement(); + /** Returns the root model element represented by this top-level element. */ + EObject getRootModelElement(); /** Executes the given {@link Runnable} as model changing command. */ void runAsCommand(Runnable runner); diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ModelElementTransformationContext.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ModelElementTransformationContext.java index 9a3b61334ac6ecf4e8fad7dd114bec1d7be25ca8..3561e4e08e77fb58b4c36197ab675679e17ccfb1 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ModelElementTransformationContext.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ModelElementTransformationContext.java @@ -26,7 +26,7 @@ import org.fortiss.tooling.kernel.extension.base.TransformationContextChainBase; * @author hoelzl * @author $Author$ * @version $Rev$ - * @ConQAT.Rating YELLOW Hash: 86FBA7A228E86492FB4A54CDD086CFCC + * @ConQAT.Rating YELLOW Hash: 0E04AF20E122C47C6545809D144811E0 */ public class ModelElementTransformationContext extends TransformationContextChainBase { diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PersistencyService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PersistencyService.java index 7a5923f67ae3b07f173ddb73e4cbc0f9189ee68f..736884dc6e0fa6578c6ab7fb34c1ef2046eb1863 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PersistencyService.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PersistencyService.java @@ -87,7 +87,7 @@ public class PersistencyService implements IPersistencyService { @Override public synchronized boolean isTopLevelElement(EObject element) { for (ITopLevelElement context : contextCache) { - if (context.getTopLevelElement() == element) { + if (context.getRootModelElement() == element) { return true; } } @@ -206,7 +206,7 @@ public class PersistencyService implements IPersistencyService { EObject modelElement) { while (modelElement != null) { for (ITopLevelElement context : contextCache) { - if (context.getTopLevelElement() == modelElement) { + if (context.getRootModelElement() == modelElement) { return context; } } diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/TransformationService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/TransformationService.java index 3fd8d0995daee1ad4dd71efaa7f53ef34ac53826..38d6f1f5f2f0e4fa4da81f474385f792792d3332 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/TransformationService.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/TransformationService.java @@ -57,8 +57,7 @@ public class TransformationService extends * given elements (or <code>null</code>n if no such connector exists). */ private ITransformationProvider findWorkingTransformationProvider( - Object source, Class<? extends Object> targetClass, - ITransformationContext context) { + Object source, Class<?> targetClass, ITransformationContext context) { List<ITransformationProvider> list = getRegisteredHandlers( source.getClass(), targetClass); if (list == null) { @@ -92,14 +91,14 @@ public class TransformationService extends /** {@inheritDoc} */ @Override - public boolean canTransform(Object source, - Class<? extends Object> targetClass, ITransformationContext context) { + public boolean canTransform(Object source, Class<?> targetClass, + ITransformationContext context) { return findWorkingTransformationProvider(source, targetClass, context) != null; } /** {@inheritDoc} */ @Override - public Object transform(Object source, Class<? extends Object> targetClass, + public Object transform(Object source, Class<?> targetClass, ITransformationContext context) throws TransformationFailedException { return findWorkingTransformationProvider(source, targetClass, context) @@ -109,11 +108,11 @@ public class TransformationService extends /** {@inheritDoc} */ @Override public List<TransformationProviderChain> getTransformationProviderChain( - Class<? extends Object> sourceClass, - Class<? extends Object> targetClass, ITransformationContext context) { + Class<?> sourceClass, Class<?> targetClass, + ITransformationContext context) { List<TransformationProviderChain> results = new LinkedList<TransformationProviderChain>(); List<ITransformationProvider> currentChain = new LinkedList<ITransformationProvider>(); - Set<Class<? extends Object>> seenTargets = new HashSet<Class<? extends Object>>(); + Set<Class<?>> seenTargets = new HashSet<Class<?>>(); seenTargets.add(sourceClass); findTransformationChains(sourceClass, targetClass, results, currentChain, seenTargets, context); @@ -125,12 +124,10 @@ public class TransformationService extends * is shielded against infinite loops within the transformation provider * graph. */ - private void findTransformationChains(Class<? extends Object> sourceClass, - Class<? extends Object> targetClass, - List<TransformationProviderChain> results, + private void findTransformationChains(Class<?> sourceClass, + Class<?> targetClass, List<TransformationProviderChain> results, List<ITransformationProvider> currentChain, - Set<Class<? extends Object>> seenTargets, - ITransformationContext context) { + Set<Class<?>> seenTargets, ITransformationContext context) { if (!currentChain.isEmpty() && currentChain.get(currentChain.size() - 1).getTargetClass() == targetClass) { // found a complete chain => add to result and backtrack @@ -147,7 +144,7 @@ public class TransformationService extends // dead end reached return; } - for (Class<? extends Object> key : providerMap.keySet()) { + for (Class<?> key : providerMap.keySet()) { List<ITransformationProvider> providerList = providerMap.get(key); for (ITransformationProvider provider : providerList) { if (provider.canHandleChainTransformation(sourceClass, context)) { diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageProvider.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageProvider.java index 308a7c5ffa253ba59ca769512d108498a8d2f2a7..ca2c023f17fded36a0d5c88260f5323e6e1afe4b 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageProvider.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageProvider.java @@ -214,7 +214,7 @@ public class EclipseResourceStorageProvider implements private ModelContext loadContext(IFile file) throws IOException { ModelContext mc = new ModelContext(file); loadedContexts.put(file, mc); - rootElementContexts.put(mc.getTopLevelElement(), mc); + rootElementContexts.put(mc.getRootModelElement(), mc); return mc; } @@ -222,7 +222,7 @@ public class EclipseResourceStorageProvider implements private void unloadContext(IFile file) { ModelContext context = loadedContexts.remove(file); if (context != null) { - rootElementContexts.remove(context.getTopLevelElement()); + rootElementContexts.remove(context.getRootModelElement()); context.destroy(); } } diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java index 351b8c294f8d48d27f222a3288b571f14fc43c5d..ff2e79cc45fc6aefa41dbd0804950de80562e7d1 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java @@ -96,7 +96,7 @@ class ModelContext implements ITopLevelElement { /** {@inheritDoc} */ @Override - public EObject getTopLevelElement() { + public EObject getRootModelElement() { return r.getContents().get(0); } @@ -115,7 +115,7 @@ class ModelContext implements ITopLevelElement { /** Checks whether all IDs are present and updates {@link #maxId}. */ private void checkIDs() { boolean hadMissing = false; - for (Iterator<EObject> i = getTopLevelElement().eAllContents(); i + for (Iterator<EObject> i = getRootModelElement().eAllContents(); i .hasNext();) { EObject eo = i.next(); if (eo instanceof IIdLabeled) { @@ -138,7 +138,7 @@ class ModelContext implements ITopLevelElement { /** Generates missing IDs. Must be called within transaction. */ private void generateMissingIDs() { - for (Iterator<EObject> i = getTopLevelElement().eAllContents(); i + for (Iterator<EObject> i = getRootModelElement().eAllContents(); i .hasNext();) { EObject eo = i.next(); if (eo instanceof IIdLabeled) { @@ -178,7 +178,7 @@ class ModelContext implements ITopLevelElement { if (needSmart) { Set<Integer> usedIDs = new HashSet<Integer>(); - for (Iterator<EObject> i = getTopLevelElement().eAllContents(); i + for (Iterator<EObject> i = getRootModelElement().eAllContents(); i .hasNext();) { EObject eo = i.next(); if (eo instanceof IIdLabeled) { diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/ITransformationService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/ITransformationService.java index 5f503bb7143e81c6341e62b6ee4a2f07c5457b26..c566c8f072598c892d0c37bd95387dd92f4b473f 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/ITransformationService.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/ITransformationService.java @@ -47,9 +47,7 @@ public interface ITransformationService { * Determines if there is a transformation provider, which can perform the * transformation of the given source element into the given target element. */ - // TODO: replace everywhere Class<? extends Object> with Class<?> - // http://stackoverflow.com/questions/370601/is-it-good-practice-to-replace-class-with-class-extends-object-to-avoid-warnin - boolean canTransform(Object source, Class<? extends Object> targetClass, + boolean canTransform(Object source, Class<?> targetClass, ITransformationContext context); /** @@ -59,7 +57,7 @@ public interface ITransformationService { * @throws TransformationFailedException * if something goes wrong during the transformation. */ - Object transform(Object source, Class<? extends Object> targetClass, + Object transform(Object source, Class<?> targetClass, ITransformationContext context) throws TransformationFailedException; @@ -69,6 +67,6 @@ public interface ITransformationService { * empty list. */ List<TransformationProviderChain> getTransformationProviderChain( - Class<? extends Object> sourceClass, - Class<? extends Object> targetClass, ITransformationContext context); + Class<?> sourceClass, Class<?> targetClass, + ITransformationContext context); } diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/base/ObjectAware2ServiceBase.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/base/ObjectAware2ServiceBase.java index 532ed6f4e55fbb7401da5e29bf95efd8efdb5dd6..d937272d688dad77c52e6b24307625e20113aedd 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/base/ObjectAware2ServiceBase.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/base/ObjectAware2ServiceBase.java @@ -193,8 +193,7 @@ public abstract class ObjectAware2ServiceBase<T extends IObjectAware2<? extends /** Adds all registered classes to the given list. */ private void addRegisteredClasses(IConfigurationElement element, - List<Class<? extends Object>> list, Bundle bundle) - throws ClassNotFoundException { + List<Class<?>> list, Bundle bundle) throws ClassNotFoundException { for (IConfigurationElement ce : element .getChildren(getClassConfigurationElement())) { Class<?> modelElementClass = ExtensionPointUtils.loadClass( diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/ProjectRootElementUtils.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/ProjectRootElementUtils.java index 2ae61f9c47246cfe1c9573e00c8b290ed0a9108b..01a87b3633b7a9c3ff72e9ce449a4fc20549a517 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/ProjectRootElementUtils.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/ProjectRootElementUtils.java @@ -46,7 +46,7 @@ public final class ProjectRootElementUtils { EObject element, Class<T> clazz) { return ReflectionUtils.pickInstanceOf(clazz, IPersistencyService.INSTANCE.getTopLevelElementFor(element) - .getTopLevelElement().eContents()); + .getRootModelElement().eContents()); } /** @@ -58,7 +58,7 @@ public final class ProjectRootElementUtils { EObject parent) { StringTokenizer tizer = new StringTokenizer(qualifiedName, "/"); EObject current = IPersistencyService.INSTANCE.getTopLevelElementFor( - parent).getTopLevelElement(); + parent).getRootModelElement(); boolean found = true; while (found && tizer.hasMoreElements()) { String name = tizer.nextToken(); @@ -85,7 +85,7 @@ public final class ProjectRootElementUtils { */ public static EObject findElementById(IIdLabeledReference reference) { EObject root = IPersistencyService.INSTANCE.getTopLevelElementFor( - reference).getTopLevelElement(); + reference).getRootModelElement(); for (Iterator<EObject> iter = root.eAllContents(); iter.hasNext();) { EObject eo = iter.next(); if (eo instanceof IIdLabeled