/* SimpleXelContext.java
Purpose:
Description:
History:
Thu Aug 30 16:56:50 2007, Created by tomyeh
Copyright (C) 2007 Potix Corporation. All Rights Reserved.
{{IS_RIGHT
This program is distributed under LGPL Version 2.1 in the hope that
it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.xel.util;
import java.util.Map;
import java.util.HashMap;
import org.zkoss.xel.XelContext;
import org.zkoss.xel.VariableResolver;
import org.zkoss.xel.FunctionMapper;
/**
* A simple implementation of {@link XelContext}.
*
* @author tomyeh
* @since 3.0.0
*/
public class SimpleXelContext implements XelContext {
private VariableResolver _resolver;
private FunctionMapper _mapper;
private Map<String, Object> _attrs;
public SimpleXelContext(VariableResolver resolver, FunctionMapper mapper) {
_resolver = resolver;
_mapper = mapper;
}
public SimpleXelContext(VariableResolver resolver) {
_resolver = resolver;
}
public SimpleXelContext() {
}
/** Sets the variable resolver, or null if not available.
*/
public void setVariableResolver(VariableResolver resolver) {
_resolver = resolver;
}
/** Sets the function mapper, or null if not available.
*/
public void setFunctionMapper(FunctionMapper mapper) {
_mapper = mapper;
}
//XelContext//
public VariableResolver getVariableResolver() {
return _resolver;
}
public FunctionMapper getFunctionMapper() {
return _mapper;
}
private Map<String, Object> attrs() {
return _attrs != null ? _attrs: (_attrs = new HashMap<String, Object>());
}
public Object getAttribute(String name) {
return _attrs != null ? _attrs.get(name): null;
}
public Object setAttribute(String name, Object value) {
return attrs().put(name, value);
}
public boolean hasAttribute(String name) {
return _attrs != null && _attrs.containsKey(name);
}
public Object removeAttribute(String name) {
return _attrs != null ? _attrs.remove(name): null;
}
public Map<String, Object> getAttributes() {
return attrs();
}
}