jfun.jaskell
Interface Resolver

All Known Implementing Classes:
DefaultResolver, EitherResolver, NilResolver

public interface Resolver

This interface is responsible for resolving unbound variables, object members and subscript expressions (like a[1]).

When a resolution fails, implementation returns the default value. That means,

def==resolveVar(name, def)
can be used to test whether a resolution succeeded.

Jaskell.setResolver(Resolver) can be used to associate a Resolver instance to a jaskell runtime.

Author:
Ben Yu Feb 17, 2006 11:22:24 AM

Method Summary
 java.lang.Object resolveMember(java.lang.Object obj, java.lang.String name, java.lang.Object def)
          Resolve a tuple member.
 java.lang.Object resolveSubscript(java.lang.Object obj, java.lang.Object[] args, java.lang.Object def)
          Resolve a subscript expression.
 java.lang.Object resolveVar(java.lang.String name, java.lang.Object def)
          Resolve a variable.
 

Method Detail

resolveVar

java.lang.Object resolveVar(java.lang.String name,
                            java.lang.Object def)
Resolve a variable.

Parameters:
name - the variable name.
def - the default value.
Returns:
the variable value or the default value if not resolveable.

resolveMember

java.lang.Object resolveMember(java.lang.Object obj,
                               java.lang.String name,
                               java.lang.Object def)
Resolve a tuple member.

Parameters:
obj - the object.
name - the member name.
def - the default value.
Returns:
the member value or the default value if not resolveable.

resolveSubscript

java.lang.Object resolveSubscript(java.lang.Object obj,
                                  java.lang.Object[] args,
                                  java.lang.Object def)
Resolve a subscript expression.

Parameters:
obj - the object.
args - the subscripts.
def - the default value.
Returns:
the result or the default value if not resolveable.