ubc.cs.JLog.Extras.BSF
Class JLogBSFEngine

java.lang.Object
  extended by BSFEngineImpl
      extended by ubc.cs.JLog.Extras.BSF.JLogBSFEngine

public class JLogBSFEngine
extends BSFEngineImpl

This is an adapter for JLog to be used with BSF, the Bean Scripting Framework from IBM and Apache Jakarta. This BSFEngine does not support the concept of 'declared' beans; it treats them the same as 'registered' beans. That is due to there not really being a concept of free-standing variables in Prolog, just predicate calls.

Author:
Ulf Dittmer (Copyright 2005)

Field Summary
protected static boolean DEBUG
           
 
Constructor Summary
JLogBSFEngine()
           
 
Method Summary
 java.lang.Object call(java.lang.Object obj, java.lang.String method, java.lang.Object[] args)
           
 void declareBean(BSFDeclaredBean bean)
          Declare a bean with the BSFManager.
 java.lang.Object eval(java.lang.String source, int lineNo, int columnNo, java.lang.Object oscript)
          This is used by an application to evaluate a string containing some expression.
 void exec(java.lang.String source, int lineNo, int columnNo, java.lang.Object script)
          This is used to consult a string.
 void initialize(BSFManager mgrParam, java.lang.String langParam, java.util.Vector declaredBeansParam)
          Initialize the engine.
 java.lang.Object lookupBean(java.lang.String beanName)
          Look up a bean in the BSFManager.
 jTerm object2term(java.lang.Object obj)
          Translates a Java object to its Prolog equivalent.
 void registerBean(java.lang.String beanName, java.lang.Object bean)
          Register a bean with the BSFManager.
 java.lang.Object term2object(jTerm term)
          Translates a Prolog object to its Java equivalent.
 void terminate()
          Shut down the engine.
 void undeclareBean(BSFDeclaredBean bean)
          Undeclare a previously registered bean.
 void unregisterBean(java.lang.String beanName)
          Unregister a previously registered bean.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

protected static final boolean DEBUG
See Also:
Constant Field Values
Constructor Detail

JLogBSFEngine

public JLogBSFEngine()
Method Detail

initialize

public void initialize(BSFManager mgrParam,
                       java.lang.String langParam,
                       java.util.Vector declaredBeansParam)
                throws BSFException
Initialize the engine.

Throws:
BSFException

terminate

public void terminate()
Shut down the engine.


object2term

public jTerm object2term(java.lang.Object obj)
Translates a Java object to its Prolog equivalent.


term2object

public java.lang.Object term2object(jTerm term)
Translates a Prolog object to its Java equivalent.


lookupBean

public java.lang.Object lookupBean(java.lang.String beanName)
Look up a bean in the BSFManager.


registerBean

public void registerBean(java.lang.String beanName,
                         java.lang.Object bean)
Register a bean with the BSFManager.


unregisterBean

public void unregisterBean(java.lang.String beanName)
                    throws BSFException
Unregister a previously registered bean.

Throws:
BSFException

declareBean

public void declareBean(BSFDeclaredBean bean)
                 throws BSFException
Declare a bean with the BSFManager. Since declared beans are unsupported, the bean is simply registered.

Throws:
BSFException

undeclareBean

public void undeclareBean(BSFDeclaredBean bean)
                   throws BSFException
Undeclare a previously registered bean.

Throws:
BSFException

call

public java.lang.Object call(java.lang.Object obj,
                             java.lang.String method,
                             java.lang.Object[] args)
                      throws BSFException
Parameters:
method - The name of the method to call.
args - an array of arguments to be passed to the extension, which may be either Vectors of Nodes, or Strings.
Throws:
BSFException

eval

public java.lang.Object eval(java.lang.String source,
                             int lineNo,
                             int columnNo,
                             java.lang.Object oscript)
                      throws BSFException
This is used by an application to evaluate a string containing some expression.

Throws:
BSFException

exec

public void exec(java.lang.String source,
                 int lineNo,
                 int columnNo,
                 java.lang.Object script)
          throws BSFException
This is used to consult a string. The very last statement is used as a query, because otherwise 'exec' wouldn't actually execute anything, just load. If querying the last statement throws an exception, it is simply consulted instead.

Throws:
BSFException