Как я могу указать свой собственный контекст Rhino в Java?

Я пытаюсь обеспечить, чтобы мои сценарии Rhino (работающие под Java 6) были строгими, чтобы, если разработчик сценария ошибся в написании выражения, я хотел, чтобы было выдано исключение. В настоящее время происходит то, что выражение просто оценивается как «неопределенное».

Теперь согласно Mozilla org https://developer.mozilla.org/en/New_in_Rhino_1.6R6 есть функции для включения строгой проверки в контексте. Я не могу найти рабочий пример этого.

До сих пор я писал класс для расширения ContextFactory, а затем переопределял метод hasFeature.

public class ScriptContextFactory extends ContextFactory {

    protected boolean hasFeature(Context context, int featureIndex) {

        switch (featureIndex) {
            case Context.FEATURE_STRICT_EVAL:
                return true;

            case Context.FEATURE_STRICT_VARS:
                return true;
        }

        return super.hasFeature(context, featureIndex);
    }
  }

Затем в главном я установил для себя значение по умолчанию.

ContextFactory.initGlobal(new ScriptContextFactory());

и я получаю недопустимое исключение состояния. :(

Любые идеи или образцы о том, как это работает?

ТИА


person sproketboy    schedule 29.04.2010    source источник


Ответы (1)


Если вы выполняете Context.enter() перед вызовом initGlobal(), попробуйте изменить порядок.

person Tahir Akhtar    schedule 19.07.2010