I have created a custom JavaScript interpreter because I want to avoid creating 
a dependency on Rhino. I have created implementations of Interpreter and 
InterpreterFactory interfaces. I am trying to determine the best way of  
registering my InterpreterFactory with Batik. My current approach is to 
subclass BridgeContext and hard-code it to return my custom interpreter-


public class CustomBridgeContext extends BridgeContext {

   public Interpreter getInterpreter(String language) {
            if (language.equalsIgnoreCase("ecmascript")) {

                  return new MyJavaScriptInterpreter();
            }

            return super.getInterpreter(language);
    }

}


I have subclassed JSVGCanvas to return an instance of my CustomBridgeContext -


public class CustomJSVGCanvas extends JSVGCanvas {
    /**
     * Creates a new bridge context.
     */
    protected BridgeContext createBridgeContext(SVGOMDocument doc) {
        super.createBridgeContext(doc);
        return new CustomBridgeContext(userAgent, loader);
    }
}

I have read about using Service provider to register InterpreterFactory with 
batik. However, I could not determine how to use it correctly. Can someone 
point me to an example of how to register my interpreterfactory with batik 
script engine.

Thanks,
Jyoti

Reply via email to