EngineCallBacks.readlineCallBack
the call back function for handling the readline function
Calling Sequence
Parameters
Description
Examples
String readlineCallBack( Object data, boolean debug ) throws MapleException
data
-
arbitrary data that was passed into the Engine constructor
debug
true if readline was called from the debugger
readlineCallBack is a member function of the com.maplesoft.openmaple.EngineCallBacks interface. It allows the Java OpenMaple programmer to handle calls to readline.
When a readline is executed, the readlineCallBack is called. It returns a string that is passed back to the Maple engine as the return value for the readline call.
import com.maplesoft.openmaple.*;
import com.maplesoft.externalcall.MapleException;
class Example
{
static private class CallBacks implements EngineCallBacks
boolean limitExceeded;
CallBacks()
limitExceeded = false;
}
public void textCallBack( Object data, int tag, String output )
throws MapleException
switch ( tag )
case MAPLE_TEXT_OUTPUT:
System.out.print( "Text: " );
break;
case MAPLE_TEXT_DIAG:
System.out.print( "Diag: " );
case MAPLE_TEXT_MISC:
System.out.print( "Misc: " );
case MAPLE_TEXT_HELP:
System.out.print( "Help: " );
case MAPLE_TEXT_QUIT:
System.out.print( "Quit: " );
case MAPLE_TEXT_WARNING:
System.out.print( "Warning: " );
case MAPLE_TEXT_DEBUG:
System.out.print( "Debug: " );
System.out.println( output );
public void errorCallBack( Object data, int offset, String msg )
if ( offset >= 0 )
throw new MapleException( "Error: "+msg );
else
throw new MapleException( "syntax error at offset "+offset+
": "+msg );
public void statusCallBack( Object data, long kbused, long kballoced,
double timeused )
if ( timeused > 5 )
limitExceeded = true;
System.out.println( "Status: used = "+kbused+", alloced = "+
kballoced+", time = "+timeused );
public String readLineCallBack( Object data, boolean debug )
return "readline";
public boolean redirectCallBack( Object data, String output, boolean
append )
System.out.println( "redirect to "+output+" append = "+append );
return true;
public String callBackCallBack( Object data, String output )
System.out.println( "callback: "+output );
return output+";";
public boolean queryInterrupt( Object data )
return limitExceeded;
public String streamCallBack( Object data, String name, String args[] )
StringBuffer sbuf;
int i;
sbuf = new StringBuffer( name );
for ( i = 0; i < args.length; i++ )
sbuf.append( args[i] );
return sbuf.toString();
public static void main( String notused[] ) throws MapleException
String mapleArgs[];
Engine engine;
MString s;
mapleArgs = new String[1];
mapleArgs[0] = "java";
engine = new Engine( mapleArgs, new CallBacks(), null, null );
s = (MString)engine.evaluate( "readline():" );
System.out.println( "Readline returned: "+s.stringValue() );
Executing this code produces the following output.
Readline returned: readline
See Also
ExternalCalling/Java/MapleException
OpenMaple
OpenMaple/Java/Engine
OpenMaple/Java/Engine/Engine
OpenMaple/Java/EngineCallBacks
OpenMaple/Java/EngineCallBacksDefault
OpenMaple/Java/EngineCallBacksDefault/readlineCallBack
readline
Download Help Document