
org.jdesktop.el.impl.lang.EvaluationContext Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of swixml Show documentation
Show all versions of swixml Show documentation
GUI generating engine for Java applications
/*
* Copyright (C) 2007 Sun Microsystems, Inc. All rights reserved. Use is
* subject to license terms.
*/
package org.jdesktop.el.impl.lang;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import org.jdesktop.el.ELContext;
import org.jdesktop.el.ELResolver;
import org.jdesktop.el.Expression;
import org.jdesktop.el.FunctionMapper;
import org.jdesktop.el.VariableMapper;
public final class EvaluationContext extends ELContext {
private final ELContext elContext;
private final FunctionMapper fnMapper;
private final VariableMapper varMapper;
private final Expression expression;
private final Set currentIdentifierProperties;
private final Set resolvedProperties;
public EvaluationContext(ELContext elContext, FunctionMapper fnMapper,
VariableMapper varMapper, Expression expression) {
this(elContext, fnMapper, varMapper, expression, false);
}
public EvaluationContext(ELContext elContext, FunctionMapper fnMapper,
VariableMapper varMapper, Expression expression, boolean trackResolvedProperties) {
this.elContext = elContext;
this.fnMapper = fnMapper;
this.varMapper = varMapper;
this.expression = expression;
if (trackResolvedProperties) {
resolvedProperties = new LinkedHashSet(1);
currentIdentifierProperties = new LinkedHashSet(1);
} else {
resolvedProperties = null;
currentIdentifierProperties = null;
}
}
public ELContext getELContext() {
return this.elContext;
}
public FunctionMapper getFunctionMapper() {
return this.fnMapper;
}
public VariableMapper getVariableMapper() {
return this.varMapper;
}
public Expression getExpression() {
return expression;
}
public Object getContext(Class key) {
return this.elContext.getContext(key);
}
public ELResolver getELResolver() {
return this.elContext.getELResolver();
}
public boolean isPropertyResolved() {
return this.elContext.isPropertyResolved();
}
public void putContext(Class key, Object contextObject) {
this.elContext.putContext(key, contextObject);
}
public void setPropertyResolved(boolean resolved) {
this.elContext.setPropertyResolved(resolved);
}
public void clearResolvedProperties() {
if (resolvedProperties == null) {
return;
}
resolvedProperties.clear();
}
public void resolvedIdentifier(Object base, Object property) {
if (base == null || property == null || resolvedProperties == null) {
return;
}
resolvedProperties.addAll(currentIdentifierProperties);
currentIdentifierProperties.clear();
Expression.ResolvedProperty prop = new Expression.ResolvedProperty(base, property);
resolvedProperties.remove(prop);
currentIdentifierProperties.add(prop);
}
public void resolvedProperty(Object base, Object property) {
if (base == null || property == null || resolvedProperties == null) {
return;
}
Expression.ResolvedProperty prop = new Expression.ResolvedProperty(base, property);
resolvedProperties.remove(prop);
currentIdentifierProperties.add(prop);
}
public List getResolvedProperties() {
if (resolvedProperties == null) {
return null;
}
resolvedProperties.addAll(currentIdentifierProperties);
return new ArrayList(resolvedProperties);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy