Skip to content
Snippets Groups Projects
Commit b4ab2377 authored by Andreas Bayha's avatar Andreas Bayha
Browse files

Merge branch '4281' into 'master'

4281

See merge request !192
parents f3325ed4 c7ab2388
No related branches found
No related tags found
1 merge request!1924281
DependingElementProviderService.java 5c4547e63b0f2ff547e0c3a7253105466e0b94c1 GREEN
IDependingElementProvider.java bd4b7ff7c0a25368fc86d7fb26ecaa8a5234c76b GREEN
IDependingElementProviderService.java 9b59f524a513caf9f5a2b6d16d3523a643b7cc9e GREEN
DependingElementProviderService.java a041f3b5ff00984304ea94e9333555192c990053 GREEN
IDependingElementProvider.java 11b174e8a48f2152a0cc6066335e471cf288893c GREEN
IDependingElementProviderService.java 5bbff0a28f64b01331a6a5424cdb2104c000b57d GREEN
......@@ -29,7 +29,7 @@ import org.fortiss.tooling.kernel.service.base.EObjectAwareServiceBase;
* @author bayha
*/
public class DependingElementProviderService
extends EObjectAwareServiceBase<IDependingElementProvider<? extends EObject>>
extends EObjectAwareServiceBase<IDependingElementProvider<EObject>>
implements IDependingElementProviderService {
/** Singleton instance. */
......@@ -41,11 +41,11 @@ public class DependingElementProviderService
public List<EObject> getDependingElements(EObject obj) {
List<EObject> res = new ArrayList<EObject>();
List<IDependingElementProvider<? extends EObject>> registeredHandlers =
List<IDependingElementProvider<EObject>> registeredHandlers =
getRegisteredHandlers(obj.getClass());
if(registeredHandlers != null) {
for(IDependingElementProvider<?> p : registeredHandlers) {
for(IDependingElementProvider<EObject> p : registeredHandlers) {
res.addAll(p.getDependingElements(obj));
}
}
......@@ -100,9 +100,10 @@ public class DependingElementProviderService
}
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override
public void registerDependingElementProvider(
IDependingElementProvider<? extends EObject> provider, Class<? extends EObject> cls) {
addHandler(cls, provider);
addHandler(cls, (IDependingElementProvider<EObject>)provider);
}
}
......@@ -21,19 +21,22 @@ import org.eclipse.emf.ecore.EObject;
import org.fortiss.tooling.kernel.service.base.IEObjectAware;
/**
* Interface for DependingElementProviders that can be registered in the {@link IDependingElementProviderService}.
* Interface for DependingElementProviders that can be registered in the
* {@link IDependingElementProviderService}.
*
* @author bayha
*
* @param <T> The subclass of {@link EObject} for which this provider shall be invoked.
* @param <T>
* The subclass of {@link EObject} for which this provider shall be invoked.
*/
public interface IDependingElementProvider<T extends EObject> extends IEObjectAware<T> {
/**
* Retrieves the {@link EObject}s which depend on the given {@link EObject}.
* Retrieves the {@link EObject}s which depend on the given {@link EObject}.
*
* @param elem The {@link EObject} to retrieve elements which depend on it.
* @return The {@link List} of {@link EObject} which depend on elem.
* @param elem
* The {@link EObject} to retrieve elements which depend on it.
* @return The {@link List} of {@link EObject} which depend on elem.
*/
public List<EObject> getDependingElements(EObject elem);
public List<EObject> getDependingElements(T elem);
}
......@@ -17,9 +17,9 @@ package org.fortiss.tooling.ext.variability.service;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
/**
* Interface of the DependingElementProviderService which resolves semantic
* and syntactic dependencies between model elements.
......@@ -29,7 +29,8 @@ import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
public interface IDependingElementProviderService extends IIntrospectiveKernelService {
/** Name of the respective extension point. */
/* package */static final String EXTENSION_POINT_NAME = "org.fortiss.af3.variability.dependingElementProvider";
/* package */static final String EXTENSION_POINT_NAME =
"org.fortiss.af3.variability.dependingElementProvider";
/** Name of the respective configuration element. */
/* package */ static final String CONFIGURATION_ELEMENT_NAME = "dependingElementProvider";
......@@ -41,16 +42,20 @@ public interface IDependingElementProviderService extends IIntrospectiveKernelSe
/**
* Retrieves all depending elements for the given {@link EObject}.
*
* @param obj The {@link EObject} to retrieve the elements which depend on it.
* @return The {@link List} of {@link EObject} which depend on the obj.
* @param obj
* The {@link EObject} to retrieve the elements which depend on it.
* @return The {@link List} of {@link EObject} which depend on the obj.
*/
public List<EObject> getDependingElements(EObject obj);
/**
* Registers the given {@link IDependingElementProvider} in this service.
* Registers the given {@link IDependingElementProvider} in this service.
*
* @param provider The {@link IDependingElementProvider} to register.
* @param cls The subclass of {@link EObject} the given provider shall be used for.
* @param provider
* The {@link IDependingElementProvider} to register.
* @param cls
* The subclass of {@link EObject} the given provider shall be used for.
*/
public void registerDependingElementProvider(IDependingElementProvider<? extends EObject> provider, Class<? extends EObject> cls);
public void registerDependingElementProvider(
IDependingElementProvider<? extends EObject> provider, Class<? extends EObject> cls);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment