package railo.runtime.type.scope;
import java.util.Set;
import railo.runtime.exp.PageException;
import railo.runtime.type.Array;
import railo.runtime.type.Collection;
/**
* interface for Argument scope
*/
public interface Argument extends Scope,Array,BindScope {
/**
* sets if scope is binded to a other variable for using outside of a udf
* @param bind
*/
public abstract void setBind(boolean bind);
/**
* @return returns if scope is binded to a other variable for using outside of a udf
*/
public abstract boolean isBind();
/**
* insert a key in argument scope at defined position
* @param index
* @param key
* @param value
* @return boolean
* @throws PageException
*/
public abstract boolean insert(int index, String key, Object value)
throws PageException;
public Object setArgument(Object obj) throws PageException;
public static final Object NULL = null;
public Object getFunctionArgument(String key, Object defaultValue);
public Object getFunctionArgument(Collection.Key key, Object defaultValue);
public void setFunctionArgumentNames(Set functionArgumentNames);
public boolean containsFunctionArgumentKey(Key key);
}