private IInterpreter provide(IInterpreterContext context, String expression) { if (currentContext == null) { createNewInterpreter(context, expression); } else { if (!IInterpreterContextUtils.haveSameScopeDefinition(context, currentContext)) { if (currentInterpreter != null) { currentInterpreter.dispose(); } createNewInterpreter(context, expression); } } return currentInterpreter; }
void createNewInterpreter(IInterpreterContext context, String expression) { currentContext = context; currentInterpreter = CompoundInterpreter.createGenericInterpreter(); IInterpreterContextUtils.configureInterpreter(currentInterpreter, context); }