[469012] WIP towards more general Console selections
diff --git a/examples/org.eclipse.ocl.examples.xtext.console/src/org/eclipse/ocl/examples/xtext/console/OCLConsole.java b/examples/org.eclipse.ocl.examples.xtext.console/src/org/eclipse/ocl/examples/xtext/console/OCLConsole.java
index 878f565..4771ce1 100644
--- a/examples/org.eclipse.ocl.examples.xtext.console/src/org/eclipse/ocl/examples/xtext/console/OCLConsole.java
+++ b/examples/org.eclipse.ocl.examples.xtext.console/src/org/eclipse/ocl/examples/xtext/console/OCLConsole.java
@@ -79,13 +79,21 @@
return instance;
}
+ /** @deprecated API preservation for Mars RC3 */
+ @Deprecated
public void setSelection(EObject contextObject) {
+ setSelection((Object)contextObject);
+ }
+
+ public void setSelection(Object contextObject) {
String typeName = "null"; //$NON-NLS-1$;
String objectName = "null"; //$NON-NLS-1$
if (contextObject != null) {
objectName = LabelUtil.getLabel(contextObject);
- typeName = contextObject.eClass().getName();
+ if (contextObject instanceof EObject) {
+ typeName = ((EObject)contextObject).eClass().getName();
+ }
}
- setName(NLS.bind(ConsoleMessages.Console_TitleWithContext, objectName, typeName));
+ setName(NLS.bind(ConsoleMessages.Console_TitleWithContext, objectName, typeName));
}
}
diff --git a/examples/org.eclipse.ocl.examples.xtext.console/src/org/eclipse/ocl/examples/xtext/console/OCLConsolePage.java b/examples/org.eclipse.ocl.examples.xtext.console/src/org/eclipse/ocl/examples/xtext/console/OCLConsolePage.java
index c47ae05..1447022 100644
--- a/examples/org.eclipse.ocl.examples.xtext.console/src/org/eclipse/ocl/examples/xtext/console/OCLConsolePage.java
+++ b/examples/org.eclipse.ocl.examples.xtext.console/src/org/eclipse/ocl/examples/xtext/console/OCLConsolePage.java
@@ -168,7 +168,7 @@
monitor.subTask(ConsoleMessages.Progress_Synchronising);
monitor.worked(1);
// CS2ASResourceAdapter csAdapter = CS2ASResourceAdapter.getAdapter((BaseCSResource)resource, metamodelManager);
- EnvironmentFactory environmentFactory = getEnvironmentFactory(contextObject);
+ EnvironmentFactory environmentFactory = getEnvironmentFactory(getContextObject());
// monitor.subTask(ConsoleMessages.Progress_CST);
// try {
// csAdapter.refreshPivotMappings();
@@ -324,7 +324,7 @@
private ISelectionService selectionService;
private ISelectionListener selectionListener;
- private EObject contextObject;
+ private Object contextObject;
private ParserContext parserContext;
private OCLInternal nullOCL = null;
@@ -789,7 +789,17 @@
}
public EObject getContextObject() {
- return contextObject;
+ if (contextObject instanceof EObject) {
+ return (EObject) contextObject;
+ }
+ if (contextObject instanceof Iterable<?>) {
+ for (Object object : (Iterable<?>)contextObject) {
+ if (object instanceof EObject) {
+ return (EObject) object;
+ }
+ }
+ }
+ return null;
}
@Override
@@ -855,18 +865,13 @@
org.eclipse.uml2.uml.Element selectedElement = (org.eclipse.uml2.uml.Element)selectedObject;
MetamodelManager metamodelManager = getMetamodelManager(selectedElement);
contextObject = metamodelManager.getPivotOf(Element.class, selectedElement);
- }
- else*/ if (selectedObject instanceof EObject) {
- contextObject = (EObject) selectedObject;
- }
- else { // FIXME else Value in particular CollectionValue
- contextObject = null;
- }
+ } */
+ contextObject = selectedObject;
if (resource instanceof BaseCSResource) {
((BaseCSResource)resource).dispose();
}
- EnvironmentFactoryInternal environmentFactory = getEnvironmentFactory(contextObject);
+ EnvironmentFactoryInternal environmentFactory = getEnvironmentFactory(getContextObject());
IdResolver idResolver = environmentFactory.getIdResolver();
// DomainType staticType = idResolver.getStaticTypeOf(selectedObject);
org.eclipse.ocl.pivot.Class staticType = idResolver.getStaticTypeOf(contextObject);
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/library/executor/JavaType.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/library/executor/JavaType.java
index 7f0c347..3260795 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/library/executor/JavaType.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/library/executor/JavaType.java
@@ -15,6 +15,7 @@
import org.eclipse.ocl.pivot.CompleteInheritance;
import org.eclipse.ocl.pivot.Operation;
import org.eclipse.ocl.pivot.StandardLibrary;
+import org.eclipse.ocl.pivot.TemplateParameter;
import org.eclipse.ocl.pivot.Type;
import org.eclipse.ocl.pivot.ids.IdResolver;
import org.eclipse.ocl.pivot.ids.TypeId;
@@ -122,6 +123,11 @@
}
@Override
+ public @Nullable TemplateParameter isTemplateParameter() {
+ return null;
+ }
+
+ @Override
public @NonNull Operation lookupActualOperation(@NonNull StandardLibrary standardLibrary, @NonNull Operation apparentOperation) {
CompleteInheritance inheritance = getInheritance(standardLibrary);
return inheritance.lookupActualOperation(standardLibrary, apparentOperation);