Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMélanie Bats2016-09-21 13:12:54 +0000
committerMélanie Bats2016-09-29 13:53:23 +0000
commit31b7718afc6946a342c263a00da91dfb08e0e211 (patch)
tree8123d9a3623f2d494fb6594be156cb059916b653 /plugins
parent7d92fcbef77bc035f3fcaf0c3997da81fb293f7a (diff)
downloadorg.eclipse.eef-31b7718afc6946a342c263a00da91dfb08e0e211.tar.gz
org.eclipse.eef-31b7718afc6946a342c263a00da91dfb08e0e211.tar.xz
org.eclipse.eef-31b7718afc6946a342c263a00da91dfb08e0e211.zip
[501917] Make EEF able to handle Object input
Bug:501917 Change-Id: I992f9c186965423f930c528e64891ef21060db98 Signed-off-by: Mélanie Bats <melanie.bats@obeo.fr>
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/DomainClassPredicate.java10
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFPageImpl.java9
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFViewImpl.java14
3 files changed, 18 insertions, 15 deletions
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/DomainClassPredicate.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/DomainClassPredicate.java
index aa512bbcb..6470c4f2e 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/DomainClassPredicate.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/DomainClassPredicate.java
@@ -12,6 +12,7 @@ package org.eclipse.eef.core.internal;
import com.google.common.base.Predicate;
+import org.eclipse.eef.common.api.utils.Util;
import org.eclipse.eef.core.api.IEEFDomainClassTester;
import org.eclipse.emf.ecore.EObject;
@@ -21,7 +22,7 @@ import org.eclipse.emf.ecore.EObject;
* @author pcdavid
* @author sbegaudeau
*/
-public class DomainClassPredicate implements Predicate<EObject> {
+public class DomainClassPredicate implements Predicate<Object> {
/**
* The domain class name.
*/
@@ -46,8 +47,11 @@ public class DomainClassPredicate implements Predicate<EObject> {
}
@Override
- public boolean apply(EObject input) {
- return this.domainClassTester.eInstanceOf(input, domainClassName);
+ public boolean apply(Object input) {
+ if (input instanceof EObject) {
+ return this.domainClassTester.eInstanceOf((EObject) input, domainClassName);
+ }
+ return Util.isBlank(domainClassName);
}
}
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFPageImpl.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFPageImpl.java
index d4d4f9ec9..140ae901a 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFPageImpl.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFPageImpl.java
@@ -25,7 +25,6 @@ import org.eclipse.eef.core.api.EEFView;
import org.eclipse.eef.core.api.IEEFDomainClassTester;
import org.eclipse.eef.core.api.controllers.IConsumer;
import org.eclipse.eef.core.api.utils.EvalFactory;
-import org.eclipse.emf.ecore.EObject;
import org.eclipse.sirius.common.interpreter.api.IInterpreter;
import org.eclipse.sirius.common.interpreter.api.IVariableManager;
@@ -110,11 +109,11 @@ public class EEFPageImpl implements EEFPage {
@Override
public void apply(Object value) {
DomainClassPredicate domainClassPredicate = new DomainClassPredicate(eefGroupDescription.getDomainClass(), domainClassTester);
- Iterable<EObject> iterable = Util.asIterable(value, EObject.class);
- Iterable<EObject> eObjects = Iterables.filter(iterable, domainClassPredicate);
- for (EObject eObject : eObjects) {
+ Iterable<Object> iterable = Util.asIterable(value, Object.class);
+ Iterable<Object> objects = Iterables.filter(iterable, domainClassPredicate);
+ for (Object object : objects) {
IVariableManager childVariableManager = EEFPageImpl.this.getVariableManager().createChild();
- childVariableManager.put(EEFExpressionUtils.SELF, eObject);
+ childVariableManager.put(EEFExpressionUtils.SELF, object);
EEFGroupImpl eefGroupImpl = new EEFGroupImpl(EEFPageImpl.this, eefGroupDescription, childVariableManager, interpreter);
eefGroups.add(eefGroupImpl);
}
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFViewImpl.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFViewImpl.java
index b86cda918..66c381dbe 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFViewImpl.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFViewImpl.java
@@ -108,18 +108,18 @@ public class EEFViewImpl implements EEFView {
@Override
public void apply(Object value) {
DomainClassPredicate domainClassPredicate = new DomainClassPredicate(eefPageDescription.getDomainClass(), domainClassTester);
- Iterable<EObject> iterable = Util.asIterable(value, EObject.class);
- Iterable<EObject> eObjects = Iterables.filter(iterable, domainClassPredicate);
+ Iterable<Object> iterable = Util.asIterable(value, Object.class);
+ Iterable<Object> objects = Iterables.filter(iterable, domainClassPredicate);
boolean isUnique = true;
- Iterator<EObject> iterator = eObjects.iterator();
+ Iterator<Object> iterator = objects.iterator();
while (iterator.hasNext()) {
- EObject eObject = iterator.next();
+ Object object = iterator.next();
if (isUnique && iterator.hasNext()) {
isUnique = false;
}
- EEFPageImpl ePage = createPage(eefPageDescription, eObject, isUnique);
+ EEFPageImpl ePage = createPage(eefPageDescription, object, isUnique);
ePage.initialize();
EEFViewImpl.this.eefPages.add(ePage);
}
@@ -215,8 +215,8 @@ public class EEFViewImpl implements EEFView {
// If the semantic candidate expression is blank, we will use the variable self of the page
Object pageSelf = eefPage.getVariableManager().getVariables().get(EEFExpressionUtils.SELF);
String groupSemanticCandidateExpression = eefGroup.getDescription().getSemanticCandidateExpression();
- EvalFactory.of(this.interpreter, eefPage.getVariableManager()).defaultValue(pageSelf)
- .call(groupSemanticCandidateExpression, groupConsumer);
+ EvalFactory.of(this.interpreter, eefPage.getVariableManager()).defaultValue(pageSelf).call(groupSemanticCandidateExpression,
+ groupConsumer);
}
}
}

Back to the top