com.ibm.bsf.engines.rexx
Class RexxEngine
java.lang.Object
|
+--com.ibm.bsf.util.BSFEngineImpl
|
+--com.ibm.bsf.engines.rexx.RexxEngine
- All Implemented Interfaces:
- com.ibm.bsf.BSFEngine, java.util.EventListener, java.beans.PropertyChangeListener
- public class RexxEngine
- extends com.ibm.bsf.util.BSFEngineImpl
This class manages the calls from Java via JNI to Rexx or Object Rexx
using the RexxSAA interface.
RexxEngine.java - this class makes (Object) Rexx available to IBM's BeanScriptingFramework (BSF)
Copyright (C) 2001 Rony G. Flatscher
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
The following URL may be available for further information:
http://www.gnu.org/copyleft/lesser.html
- Since:
- 2001-03-01 by Rony G. Flatscher
- Version:
- 1.0.4, 2001-05-12
- Author:
- Rony G. Flatscher (University of Essen & WU Wien University), Peter Kalender (Oct 2000 to Feb 2001, University of Essen)
Fields inherited from class com.ibm.bsf.util.BSFEngineImpl |
classLoader, classPath, debug, debugStream, declaredBeans, lang, mgr, tempDir |
Method Summary |
java.lang.Object |
apply(java.lang.String source,
int lineNo,
int columnNo,
java.lang.Object oscript,
java.util.Vector vArgNames,
java.util.Vector vArgs)
Applies (evaluates) a piece of Rexx code
(can be a whole program as well)
with Java-supplied arguments and returns the result. |
java.lang.Object |
call(java.lang.Object object,
java.lang.String name,
java.lang.Object[] args)
Deprecated. "
This call(...) method may be enhanced in the future, once an openly
defined and available interface to the OO-part of Object Rexx is made
available by IBM. Then the argument "object " would denote
an Object Rexx object, the argument "name " the name of one of its methods
and the argument "args " the arguments for the method.
For the time being use method
apply(...)
instead. |
java.lang.Object |
eval(java.lang.String source,
int lineNo,
int columnNo,
java.lang.Object oscript)
Evaluates (executes) a piece of Rexx code
(can be a whole program as well)
without any Java-supplied arguments and returns the result. |
void |
initialize(com.ibm.bsf.BSFManager mgr,
java.lang.String lang,
java.util.Vector declaredBeans)
Initializes the Rexx engine and causes the external
functions 'BSF' and 'BSFPollEvents' to be registered with the
Rexx interpreter. |
Methods inherited from class com.ibm.bsf.util.BSFEngineImpl |
compileApply, compileExpr, compileScript, declareBean, exec, propertyChange, setDebug, terminate, undeclareBean |
Methods inherited from class java.lang.Object |
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait |
rexxInterface
private RexxAndJava rexxInterface
- Allows using the Rexx interpreter from Java.
RexxEngine
public RexxEngine()
initialize
public void initialize(com.ibm.bsf.BSFManager mgr,
java.lang.String lang,
java.util.Vector declaredBeans)
throws com.ibm.bsf.BSFException
- Initializes the Rexx engine and causes the external
functions 'BSF' and 'BSFPollEvents' to be registered with the
Rexx interpreter. Therefore Rexx programs invoked from Java
have these two functions available to them and are therefore
able to communicate with Java.
- Overrides:
initialize
in class com.ibm.bsf.util.BSFEngineImpl
eval
public java.lang.Object eval(java.lang.String source,
int lineNo,
int columnNo,
java.lang.Object oscript)
throws com.ibm.bsf.BSFException
- Evaluates (executes) a piece of Rexx code
(can be a whole program as well)
without any Java-supplied arguments and returns the result.
- Overrides:
eval
in class com.ibm.bsf.util.BSFEngineImpl
- Parameters:
source
- if set to RexxAndJava.EVENT_TEXT
,
then oscript
is put into the event queue
to be polled by Rexx. If this text starts with the
string "/*2*/"
it is
put into the alarm (highest dispatch) level vector, if it starts with the
string "/*0*/"
it is
put into the batch (lowest dispatch) level vector,
else it is put into the normal level vector.lineNo
- not used.columnNo
- not used.oscript
- the String version of this object [using toString()]
represents the Rexx code to be executed.
Its statements are delimited with a ';' or a
CR (carriage-return) and/or LF (line-feed).- Returns:
- a String object with the result from Rexx or
null
.
call
public java.lang.Object call(java.lang.Object object,
java.lang.String name,
java.lang.Object[] args)
throws com.ibm.bsf.BSFException
- Deprecated. "
This
call(...)
method may be enhanced in the future, once an openly
defined and available interface to the OO-part of Object Rexx is made
available by IBM. Then the argument "object
" would denote
an Object Rexx object, the argument "name
" the name of one of its methods
and the argument "args
" the arguments for the method.
For the time being use method
apply(...)
instead.
- Calls (executes) a Rexx program
(can be a single line of Rexx as well)
with Java-supplied arguments and returns the result.
- Overrides:
call
in class com.ibm.bsf.util.BSFEngineImpl
- Parameters:
object
- not used.name
- at the moment will be taken as Rexx code to be executed.
Rexx statements are delimited with a ';' or a
CR (carriage-return) and/or LF (line-feed).args
- arguments to be passed to Rexx.- Returns:
- a String object with the result from Rexx or
null
.
apply
public java.lang.Object apply(java.lang.String source,
int lineNo,
int columnNo,
java.lang.Object oscript,
java.util.Vector vArgNames,
java.util.Vector vArgs)
throws com.ibm.bsf.BSFException
- Applies (evaluates) a piece of Rexx code
(can be a whole program as well)
with Java-supplied arguments and returns the result.
- Overrides:
apply
in class com.ibm.bsf.util.BSFEngineImpl
- Parameters:
source
- not used.lineNo
- not used.columnNo
- not used.oscript
- the String version of this object [using toString()]
represents the Rexx code to be executed.
Its statements are delimited with a ';' or a
an LF (line-feed, "0x0a"), preceeded by an
optional CR (carriage-return, "0x0d").vArgNames
- not used.vArgs
- arguments to be passed to Rexx.- Returns:
- a String object with the result from Rexx or
null
.