Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Charles David2015-12-15 16:32:46 +0000
committerPierre-Charles David2016-01-05 10:05:13 +0000
commitb1115b6c4300c0b27bdb1acc7e084221dc60d73c (patch)
treea3ded9b3f2af00c9555855f8c2d78b6f1b2e8448
parent1477d393c2b609670833a55a1e6eb7f8781de104 (diff)
downloadorg.eclipse.eef-b1115b6c4300c0b27bdb1acc7e084221dc60d73c.tar.gz
org.eclipse.eef-b1115b6c4300c0b27bdb1acc7e084221dc60d73c.tar.xz
org.eclipse.eef-b1115b6c4300c0b27bdb1acc7e084221dc60d73c.zip
[482993] Remove the unnecessary indirections of IInterpreterProvider and CompoundInterpreter
Bug: 482993 Change-Id: Ifa74a36e345f0d8d022bb18b8974eaac24a97e0a Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/EEFViewFactory.java13
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFCompoundInterpreter.java92
2 files changed, 5 insertions, 100 deletions
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/EEFViewFactory.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/EEFViewFactory.java
index e22cff8e6..85cbdd766 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/EEFViewFactory.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/EEFViewFactory.java
@@ -10,10 +10,7 @@
*******************************************************************************/
package org.eclipse.eef.core.api;
-import java.util.List;
-
import org.eclipse.eef.EEFViewDescription;
-import org.eclipse.eef.core.internal.EEFCompoundInterpreter;
import org.eclipse.eef.core.internal.EEFViewImpl;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
@@ -33,17 +30,17 @@ public class EEFViewFactory {
* The description of the {@link EEFView}
* @param variableManager
* The variable manager
- * @param interpreterProviders
- * The {@link IInterpreterProvider} available
+ * @param interpreter
+ * The {@link IInterpreter} to use for dynamic expressions.
* @param editingDomain
* The editing domain
* @param eObject
* The input
* @return The {@link EEFView} fully initialized
*/
- public EEFView createEEFView(EEFViewDescription eefViewDescription, IVariableManager variableManager,
- List<IInterpreterProvider> interpreterProviders, TransactionalEditingDomain editingDomain, EObject eObject) {
- EEFView eefView = new EEFViewImpl(eefViewDescription, variableManager, new EEFCompoundInterpreter(interpreterProviders), editingDomain);
+ public EEFView createEEFView(EEFViewDescription eefViewDescription, IVariableManager variableManager, IInterpreter interpreter,
+ TransactionalEditingDomain editingDomain, EObject eObject) {
+ EEFView eefView = new EEFViewImpl(eefViewDescription, variableManager, interpreter, editingDomain);
eefView.setInput(eObject);
eefView.initialize();
return eefView;
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFCompoundInterpreter.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFCompoundInterpreter.java
deleted file mode 100644
index d09fa69d9..000000000
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFCompoundInterpreter.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.eef.core.internal;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.emf.common.util.Diagnostic;
-import org.eclipse.sirius.common.interpreter.api.IEvaluationResult;
-import org.eclipse.sirius.common.interpreter.api.IInterpreter;
-import org.eclipse.sirius.common.interpreter.api.IInterpreterProvider;
-
-/**
- * Utility class encapsulating all the available interpreters.
- *
- * @author sbegaudeau
- */
-public class EEFCompoundInterpreter implements IInterpreter {
- /**
- * The interpreter providers.
- */
- private List<IInterpreterProvider> interpreterProviders;
-
- /**
- * The constructor.
- *
- * @param interpreterProviders
- * The interpreter providers.
- */
- public EEFCompoundInterpreter(List<IInterpreterProvider> interpreterProviders) {
- this.interpreterProviders = interpreterProviders;
- }
-
- /**
- * Returns the interpreter to use to evaluate the given expression body.
- *
- * @param expressionBody
- * The body of the expression
- * @return The {@link IInterpreter} found or <code>null</code> if no interpreter has been found for the evaluation
- */
- private IInterpreter getInterpreterForExpression(final String expressionBody) {
- Predicate<IInterpreterProvider> canHandleExpressionPredicate = new Predicate<IInterpreterProvider>() {
- @Override
- public boolean apply(IInterpreterProvider interpreterProvider) {
- return interpreterProvider.canHandle(expressionBody);
- }
- };
- Optional<IInterpreterProvider> interpreterProvider = Iterables.tryFind(this.interpreterProviders, canHandleExpressionPredicate);
- if (interpreterProvider.isPresent()) {
- IInterpreterProvider provider = interpreterProvider.get();
- return provider.createInterpreter();
- }
- return null;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.eef.interpreter.api.IInterpreter#evaluateExpression(java.util.Map, java.lang.String)
- */
- @Override
- public IEvaluationResult evaluateExpression(Map<String, Object> variables, String expressionBody) {
- IInterpreter interpreter = this.getInterpreterForExpression(expressionBody);
- if (interpreter != null) {
- return interpreter.evaluateExpression(variables, expressionBody);
- }
- return new IEvaluationResult() {
- @Override
- public Object getValue() {
- return null;
- }
-
- @Override
- public Diagnostic getDiagnostic() {
- return Diagnostic.CANCEL_INSTANCE;
- }
- };
- }
-
-}

Back to the top