terp - the Codemesh Modular
Template Interpreter v1.3.309

com.codemesh.terp.api
Interface TerpRegistrar

All Known Subinterfaces:
TerpEvaluator
All Known Implementing Classes:
TerpEvaluatorImpl, TerpRegistrarImpl

public interface TerpRegistrar

The API for registering and unregistering terp extensions.

Since:
1.0.0
Author:
Alexander R Krapf

Method Summary
 TerpRegistrar getGlobalRegistrar()
          Returns the global registrar.
 Converter lookupConverter(java.lang.String name)
           
 Executor<Lvalue> lookupLvalueResolver(java.lang.String name, java.util.List<java.lang.Object> args)
          Looks up a resolver.
 Executor<Rvalue> lookupRvalueResolver(java.lang.String name, java.util.List<java.lang.Object> args)
          Looks up a resolver.
 Selector lookupSelector(java.lang.String name)
           
 Sorter lookupSorter(java.lang.String name)
           
 Transformer lookupTransformer(java.lang.String name)
           
 void registerConverter(java.lang.String name, Converter conv)
          Unregisters a previously bound variable.
 void registerExecutor(java.lang.String op, Executor exec)
          Register a global function or operator overload.
 void registerLvalueResolver(java.lang.String name, Executor<Lvalue> exec)
          Register an Lvalue resolver for a specific name.
 void registerRvalueResolver(java.lang.String name, Executor<Rvalue> exec)
          Register an Rvalue resolver for a specific name.
 void registerSelector(java.lang.String name, Selector selector)
           
 void registerSorter(java.lang.String name, Sorter sorter)
           
 void registerTransformer(java.lang.String name, Transformer tx)
           
 Executor resolveExecutor(java.lang.String op, java.util.List<java.lang.Object> args)
          Locates an executor matching the given name and suitable for the given arguments.
 void unregisterConverter(java.lang.String name, Converter conv)
           
 void unregisterExecutor(java.lang.String op, Executor exec)
          Unregister a previously registered exectutor.
 void unregisterLvalueResolver(java.lang.String op, Executor<Lvalue> exec)
          Unregister the provided Lvalue resolver.
 void unregisterRvalueResolver(java.lang.String op, Executor<Rvalue> exec)
          Unregister the provided Rvalue resolver.
 void unregisterSelector(java.lang.String name, Selector selector)
           
 void unregisterSorter(java.lang.String name, Sorter sorter)
           
 void unregisterTransformer(java.lang.String name, Transformer tx)
           
 

Method Detail

getGlobalRegistrar

TerpRegistrar getGlobalRegistrar()
Returns the global registrar. Changes to the global registrar affect all instances that resolve via the terp registry.

Returns:
the global registrar, one instance per classloader hierarchy.

registerExecutor

void registerExecutor(java.lang.String op,
                      Executor exec)
Register a global function or operator overload.

Parameters:
op - the function name or operator id.
exec - the executor.

unregisterExecutor

void unregisterExecutor(java.lang.String op,
                        Executor exec)
Unregister a previously registered exectutor.

Parameters:
op - the function name or operator id.
exec - the executor.

resolveExecutor

Executor resolveExecutor(java.lang.String op,
                         java.util.List<java.lang.Object> args)
Locates an executor matching the given name and suitable for the given arguments.

Parameters:
op - the executor's name.
args - the arguments passed to it.
Returns:
an executor or null if no matching executor is found.

registerLvalueResolver

void registerLvalueResolver(java.lang.String name,
                            Executor<Lvalue> exec)
Register an Lvalue resolver for a specific name. An Lvalue can be used as the target for assignment operations. An Lvalue resolver is an executor that has an Lvalue as a result. It is the basic extension mechanism that allows you to extend types' capabilities with writable properties.

Parameters:
name - the extension property or function name.
exec - the executor returning the Lvalue.

unregisterLvalueResolver

void unregisterLvalueResolver(java.lang.String op,
                              Executor<Lvalue> exec)
Unregister the provided Lvalue resolver.

Parameters:
op - the extension property or function name.
exec - the executor.

lookupLvalueResolver

Executor<Lvalue> lookupLvalueResolver(java.lang.String name,
                                      java.util.List<java.lang.Object> args)
Looks up a resolver.

Parameters:
name - the property name.
args - the arguments being passed.
Returns:
an Lvalue resolver or null.

registerRvalueResolver

void registerRvalueResolver(java.lang.String name,
                            Executor<Rvalue> exec)
Register an Rvalue resolver for a specific name. An Rvalue can be dereferenced to get its value. An Rvalue resolver is an executor that has an Rvalue as a result. It is the basic extension mechanism that allows you to extend types' capabilities with readable properties or functions.

Parameters:
name - the extension property or function name.
exec - the executor returning the Rvalue.

unregisterRvalueResolver

void unregisterRvalueResolver(java.lang.String op,
                              Executor<Rvalue> exec)
Unregister the provided Rvalue resolver.

Parameters:
op - the extension property or function name.
exec - the executor.

lookupRvalueResolver

Executor<Rvalue> lookupRvalueResolver(java.lang.String name,
                                      java.util.List<java.lang.Object> args)
Looks up a resolver.

Parameters:
name - the property name.
args - the arguments being passed.
Returns:
an Rvalue resolver or null.

registerConverter

void registerConverter(java.lang.String name,
                       Converter conv)
Unregisters a previously bound variable.

Parameters:
name - the variable name.
bGlobal - true if the variable is a global variable, false for a scope variable.

unregisterConverter

void unregisterConverter(java.lang.String name,
                         Converter conv)

lookupConverter

Converter lookupConverter(java.lang.String name)

registerSelector

void registerSelector(java.lang.String name,
                      Selector selector)

unregisterSelector

void unregisterSelector(java.lang.String name,
                        Selector selector)

lookupSelector

Selector lookupSelector(java.lang.String name)

registerSorter

void registerSorter(java.lang.String name,
                    Sorter sorter)

unregisterSorter

void unregisterSorter(java.lang.String name,
                      Sorter sorter)

lookupSorter

Sorter lookupSorter(java.lang.String name)

registerTransformer

void registerTransformer(java.lang.String name,
                         Transformer tx)

unregisterTransformer

void unregisterTransformer(java.lang.String name,
                           Transformer tx)

lookupTransformer

Transformer lookupTransformer(java.lang.String name)

terp - the Codemesh Modular
Template Interpreter v1.3.309

Copyright © 2008-2012 by Codemesh, Inc. All Rights Reserved.