Действительно старый вопрос, но вот мой ответ:
- Установите ваш преобразователь как переменную на интерпретаторе
Interpreter i = new Interpreter();
i.set("resolver", myResolver);
- Жетоны процесса
Предварительно обработайте пользовательский ввод для шаблона @something
в регулярное выражение или что-то еще, чтобы преобразовать ваш токен скрипта как:
resolver.resolve("@something") == 5
- Выполнить скрипт (для ясности я пропустил \ ", так как это будет переменная)
i.eval("resolver.resolve("@something") == 5")
Метод разрешения может вернуть объект; Лёгкая печать и авто-бокс Beanshell должны заботиться о вещах. Я вижу проблему, например, в String.equals (), поскольку для этого требуется нечто большее, чем просто замена токена.