Copyright (c) 2000, 2008 IBM Corporation and others. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ SPDX-License-Identifier: EPL-2.0 Contributors: IBM Corporation - initial API and implementation
/******************************************************************************* * Copyright (c) 2000, 2008 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/
package org.eclipse.core.expressions; import java.util.HashMap; import java.util.Map; import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.CoreException;
A default implementation of an evaluation context.

Clients may instantiate this default context. The class is not intended to be subclassed by clients.

Since:3.0
@noextendThis class is not intended to be subclassed by clients.
/** * A default implementation of an evaluation context. * <p> * Clients may instantiate this default context. The class is * not intended to be subclassed by clients. * </p> * * @since 3.0 * * @noextend This class is not intended to be subclassed by clients. */
public class EvaluationContext implements IEvaluationContext { private IEvaluationContext fParent; private Object fDefaultVariable; private Map<String, Object> fVariables; private IVariableResolver[] fVariableResolvers; private Boolean fAllowPluginActivation;
Create a new evaluation context with the given parent and default variable.
Params:
  • parent – the parent context. Can be null.
  • defaultVariable – the default variable
/** * Create a new evaluation context with the given parent and default * variable. * * @param parent the parent context. Can be <code>null</code>. * @param defaultVariable the default variable */
public EvaluationContext(IEvaluationContext parent, Object defaultVariable) { Assert.isNotNull(defaultVariable); fParent= parent; fDefaultVariable= defaultVariable; }
Create a new evaluation context with the given parent and default variable.
Params:
  • parent – the parent context. Can be null.
  • defaultVariable – the default variable
  • resolvers – an array of IVariableResolvers to resolve additional variables.
See Also:
/** * Create a new evaluation context with the given parent and default * variable. * * @param parent the parent context. Can be <code>null</code>. * @param defaultVariable the default variable * @param resolvers an array of <code>IVariableResolvers</code> to * resolve additional variables. * * @see #resolveVariable(String, Object[]) */
public EvaluationContext(IEvaluationContext parent, Object defaultVariable, IVariableResolver[] resolvers) { Assert.isNotNull(defaultVariable); Assert.isNotNull(resolvers); fParent= parent; fDefaultVariable= defaultVariable; fVariableResolvers= resolvers; } @Override public IEvaluationContext getParent() { return fParent; } @Override public IEvaluationContext getRoot() { if (fParent == null) return this; return fParent.getRoot(); } @Override public Object getDefaultVariable() { return fDefaultVariable; } @Override public void setAllowPluginActivation(boolean value) { fAllowPluginActivation= value ? Boolean.TRUE : Boolean.FALSE; } @Override public boolean getAllowPluginActivation() { if (fAllowPluginActivation == null) { if (fParent != null) return fParent.getAllowPluginActivation(); return false; } return fAllowPluginActivation.booleanValue(); } @Override public void addVariable(String name, Object value) { Assert.isNotNull(name); Assert.isNotNull(value); if (fVariables == null) fVariables= new HashMap<>(); fVariables.put(name, value); } @Override public Object removeVariable(String name) { Assert.isNotNull(name); if (fVariables == null) return null; return fVariables.remove(name); } @Override public Object getVariable(String name) { Assert.isNotNull(name); Object result= null; if (fVariables != null) { result= fVariables.get(name); } if (result != null) return result; if (fParent != null) return fParent.getVariable(name); return null; } @Override public Object resolveVariable(String name, Object[] args) throws CoreException { if (fVariableResolvers != null && fVariableResolvers.length > 0) { for (IVariableResolver resolver : fVariableResolvers) { Object variable= resolver.resolve(name, args); if (variable != null) return variable; } } if (fParent != null) return fParent.resolveVariable(name, args); return null; } }