/* XelContext.java
Purpose:
Description:
History:
Thu Aug 30 12:23:25 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;
import java.util.Map;
/**
* Context information for XEL evaluation.
*
* @author tomyeh
* @since 3.0.0
*/
public interface XelContext {
/** Returns the variable resolver, or null if not available.
*/
public VariableResolver getVariableResolver();
/** Returns the function mapper, or null if not available.
*/
public FunctionMapper getFunctionMapper();
/** Returns the value of the specified attribute, or null if not available.
* @param name the name of the attribute to retrieve
* @return the value
* @since 5.0.0
*/
public Object getAttribute(String name);
/** Sets the value of the specified attribute
* @param name the name of the attribute to set
* @param value the value of the attribute to set
* @return the previous value
* @since 5.0.0
*/
public Object setAttribute(String name, Object value);
/** Returns if the attribute is available.
* <p>Notice that <code>null</code> is a valid value, so you can
* tell if an attribute is associated by examining the return value
* of {@link #getAttribute}.
* @param name the name of the attribute to test
* @since 5.0.0
*/
public boolean hasAttribute(String name);
/** Removes the attribute.
* @param name the name of the attribute to remove.
* @return the previous value associated with the attribute, if any,
* @since 5.0.0
*/
public Object removeAttribute(String name);
/** Returns all attributes
* @since 5.0.0
*/
public Map<String, Object> getAttributes();
}