diff options
| author | Pierre-Charles David | 2015-12-15 16:32:46 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2016-01-05 10:05:13 +0000 |
| commit | b1115b6c4300c0b27bdb1acc7e084221dc60d73c (patch) | |
| tree | a3ded9b3f2af00c9555855f8c2d78b6f1b2e8448 | |
| parent | 1477d393c2b609670833a55a1e6eb7f8781de104 (diff) | |
| download | org.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.java | 13 | ||||
| -rw-r--r-- | plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFCompoundInterpreter.java | 92 |
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; - } - }; - } - -} |
