Интерфейс ScriptEngine

Все известные реализующие классы:
AbstractScriptEngine, NashornScriptEngine
public interface ScriptEngine

ScriptEngine — это основной интерфейс, методы которого должны быть полностью функциональными в каждой реализации этого спецификации.

Эти методы обеспечивают базовые возможности сценариев. Приложения, написанные для этого простого интерфейса, должны работать с минимальными изменениями в каждой реализации. Он включает методы для выполнения сценариев и методы для установки и получения значений.

Значения представляют собой пары «ключ-значение» двух типов. Первый тип пар содержит ключи, которые зарезервированы и определены в этой спецификации или отдельными реализациями. Значения в парах с зарезервированными ключами имеют определённые значения.

Другой тип пар создает привязки языка Java. Значения обычно представлены в сценариях соответствующими ключами или их декоративными формами.

С:
1.6

Поля

Модификатор и тип Поле Описание
static String ARGV

Зарезервированный ключ для именованного значения, передающего массив позиционных аргументов в сценарий.

static String ENGINE

Зарезервированный ключ для именованного значения, являющегося именем реализации ScriptEngine.

static String ENGINE_VERSION

Зарезервированный ключ для именованного значения, определяющего версию реализации ScriptEngine.

static String FILENAME

Зарезервированный ключ для именованного значения, являющегося именем исполняемого файла.

static String LANGUAGE

Зарезервированный ключ для именованного значения, являющегося полным именем поддерживаемого реализацией языка сценариев.

static String LANGUAGE_VERSION

Зарезервированный ключ для именованного значения, определяющего версию языка сценариев, поддерживаемого реализацией.

static String NAME

Зарезервированный ключ для именованного значения, определяющего короткое имя языка сценариев.

Методы

Модификатор и тип Метод Описание
Bindings createBindings()

Возвращает неинициализированный Bindings.

Object eval​(Reader reader)

Аналогично eval(String), за исключением того, что источник сценария предоставлен как Reader

Object eval​(Reader reader, Bindings n)

Аналогично eval(String, Bindings), за исключением того, что источник сценария предоставлен как Reader.

Object eval​(Reader reader, ScriptContext context)

Аналогично eval(String, ScriptContext), где источник сценария считывается из Reader.

Object eval​(String script)

Выполняет указанный сценарий.

Object eval​(String script, Bindings n)

Выполняет сценарий, используя аргумент Bindings в качестве ENGINE_SCOPE Bindings ScriptEngine во время выполнения сценария.

Object eval​(String script, ScriptContext context)

Вызывает немедленное выполнение сценария, исходный текст которого — переданная в качестве первого аргумента строка.

Object get​(String key)

Возвращает значение, установленное в состоянии этого движка.

Bindings getBindings​(int scope)

Возвращает область именованных значений.

ScriptContext getContext()

Возвращает значение по умолчанию ScriptContext ScriptEngine, чьи привязки, читатели и писатели используются для выполнения сценариев, если ScriptContext не указан.

ScriptEngineFactory getFactory()

Возвращает ScriptEngineFactory для класса, к которому принадлежит этот ScriptEngine.

void put​(String key, Object value)

Устанавливает пару «ключ-значение» в состояние ScriptEngine, которая может либо создать привязку языка Java для использования при выполнении сценариев, либо быть использована другим способом, в зависимости от того, является ли ключ зарезервированным.

void setBindings​(Bindings bindings, int scope)

Устанавливает область именованных значений для использования сценариями.

void setContext​(ScriptContext context)

Устанавливает значение по умолчанию ScriptContext ScriptEngine, чьи привязки, читатели и писатели используются для выполнения сценариев, если ScriptContext не указан.

Поля

ARGV

static final String ARGV

Зарезервированный ключ для именованного значения, передающего массив позиционных аргументов в сценарий.

См. также:
Значения константных полей

FILENAME

static final String FILENAME

Зарезервированный ключ для именованного значения, являющегося именем исполняемого файла.

См. также:
Значения константных полей

ENGINE

static final String ENGINE

Зарезервированный ключ для именованного значения, являющегося именем реализации ScriptEngine.

См. также:
Значения константных полей

ENGINE_VERSION

static final String ENGINE_VERSION

Зарезервированный ключ для именованного значения, определяющего версию реализации ScriptEngine.

См. также:
Значения константных полей

NAME

static final String NAME

Зарезервированный ключ для именованного значения, определяющего короткое имя языка сценариев. Имя используется ScriptEngineManager для поиска ScriptEngine с заданным именем в методе getEngineByName.

См. также:
Значения константных полей

LANGUAGE

static final String LANGUAGE

Зарезервированный ключ для именованного значения, являющегося полным именем языка сценариев, поддерживаемого реализацией.

См. также:
Значения константных полей

LANGUAGE_VERSION

static final String LANGUAGE_VERSION

Зарезервированный ключ для именованного значения, определяющего версию языка сценариев, поддерживаемого реализацией.

См. также:
Значения константных полей

Методы

eval

Object eval(String script,
            ScriptContext context)
     throws ScriptException

Вызывает немедленное выполнение скрипта, источником которого является строка, переданная в качестве первого аргумента. Скрипт может быть повторно разобран или перекомпилирован перед выполнением. Состояние, оставленное в движке из предыдущих выполнений, включая значения переменных и скомпилированные процедуры, может быть видимым во время этого выполнения.

Параметры:
script - Скрипт, который должен быть выполнен скриптовым движком.
context - ScriptContext , предоставляющий наборы атрибутов в разных областях видимости. Значения областей видимости ScriptContext.GLOBAL_SCOPE, и ScriptContext.ENGINE_SCOPE определены в спецификации.

ENGINE_SCOPE Bindings ScriptContext содержит привязки переменных сценариев к объектам приложения, которые будут использоваться во время этого выполнения скрипта.
Возвращает:
Значение, возвращаемое после выполнения скрипта.
Исключения:
ScriptException - если возникает ошибка в скрипте. ScriptEngines должны создавать и выбрасывать обертки ScriptException для проверенных исключений, выбрасываемых базовыми скриптовыми реализациями.
NullPointerException - если любой из аргументов равен null.

eval

Object eval(Reader reader,
            ScriptContext context)
     throws ScriptException

То же, что и eval(String, ScriptContext) , где источник скрипта считывается из Reader.

Параметры:
reader - Источник скрипта, который должен быть выполнен скриптовым движком.
context - ScriptContext , переданный скриптовому движку.
Возвращает:
Значение, возвращаемое после выполнения скрипта.
Исключения:
ScriptException - если возникает ошибка в скрипте. ScriptEngines должны создавать и выбрасывать обертки ScriptException для проверенных исключений, выбрасываемых базовыми скриптовыми реализациями.
NullPointerException - если любой из аргументов равен null.

eval

Object eval(String script)
     throws ScriptException

Выполняет указанный скрипт. Используется значение по умолчанию ScriptContext для ScriptEngine.

Параметры:
script - Исходный код скрипта на языке сценариев для выполнения.
Возвращает:
Значение, возвращаемое после выполнения скрипта.
Исключения:
ScriptException - если возникает ошибка в скрипте. ScriptEngines должны создавать и выбрасывать обертки ScriptException для проверенных исключений, выбрасываемых базовыми скриптовыми реализациями.
NullPointerException - если аргумент равен null.

eval

Object eval(Reader reader)
     throws ScriptException

То же, что и eval(String) , за исключением того, что источник скрипта предоставляется как Reader

Параметры:
reader - Источник скрипта.
Возвращает:
Значение, возвращаемое скриптом.
Исключения:
ScriptException - если возникает ошибка в скрипте. ScriptEngines должны создавать и выбрасывать обертки ScriptException для проверенных исключений, выбрасываемых базовыми скриптовыми реализациями.
NullPointerException - если аргумент равен null.

eval

Object eval(String script,
            Bindings n)
     throws ScriptException

Выполняет скрипт, используя аргумент Bindings в качестве ENGINE_SCOPE Bindings ScriptEngine во время выполнения скрипта. Используются Reader, Writer и не-ENGINE_SCOPE Bindings по умолчанию ScriptContext . ENGINE_SCOPE Bindings ScriptEngine не изменяется, и его сопоставления не изменяются выполнением скрипта.

Параметры:
script - Источник скрипта.
n - Bindings атрибутов, которые будут использоваться для выполнения скрипта.
Возвращает:
Значение, возвращаемое скриптом.
Исключения:
ScriptException - если возникает ошибка в скрипте. ScriptEngines должны создавать и выбрасывать обертки ScriptException для проверенных исключений, выбрасываемых базовыми скриптовыми реализациями.
NullPointerException - если любой из аргументов равен null.

eval

Object eval(Reader reader,
            Bindings n)
     throws ScriptException

То же, что и eval(String, Bindings) , за исключением того, что источник скрипта предоставляется как Reader.

Параметры:
reader - Источник скрипта.
n - Bindings атрибутов.
Возвращает:
Значение, возвращаемое скриптом.
Исключения:
ScriptException - если возникает ошибка в скрипте. ScriptEngines должны создавать и выбрасывать обертки ScriptException для проверенных исключений, выбрасываемых базовыми скриптовыми реализациями.
NullPointerException - если любой из аргументов равен null.

put

void put(String key,
         Object value)

Устанавливает пару ключ/значение в состоянии ScriptEngine, которая может либо создать привязку языка Java для использования при выполнении скриптов, либо использоваться каким-либо иным образом, в зависимости от того, зарезервирован ли ключ. Должен иметь тот же эффект, что и getBindings(ScriptContext.ENGINE_SCOPE).put.

Параметры:
key - Имя добавляемого именованного значения
value - Значение добавляемого именованного значения.
Исключения:
NullPointerException - если ключ равен null.
IllegalArgumentException - если ключ пуст.

get

Object get(String key)

Извлекает значение, установленное в состоянии этого движка. Значение может быть тем, которое было установлено с помощью setValue или какое-либо другое значение в состоянии ScriptEngine , в зависимости от реализации. Должен иметь тот же эффект, что и getBindings(ScriptContext.ENGINE_SCOPE).get

Параметры:
key - Ключ, значение которого должно быть возвращено
Возвращает:
значение для данного ключа
Исключения:
NullPointerException - если ключ равен null.
IllegalArgumentException - если ключ пуст.

getBindings

Bindings getBindings(int scope)

Возвращает область видимости именованных значений. Возможные области видимости:

  • ScriptContext.GLOBAL_SCOPE - Набор именованных значений, представляющих глобальную область видимости. Если эта ScriptEngine создается ScriptEngineManager, то менеджер устанавливает привязки глобальной области видимости. Это может быть null , если глобальная область видимости не связана с этой ScriptEngine
  • ScriptContext.ENGINE_SCOPE - Набор именованных значений, представляющих состояние этой ScriptEngine. Значения обычно видны в скриптах, используя связанные ключи в качестве имен переменных.
  • Любое другое значение области видимости, определенное в значении по умолчанию ScriptContext ScriptEngine.


Экземпляры Bindings , которые возвращаются, должны быть идентичны тем, которые возвращаются методом getBindings ScriptContext , вызываемым с соответствующими аргументами по умолчанию ScriptContext ScriptEngine.

Параметры:
scope - Либо ScriptContext.ENGINE_SCOPE , либо ScriptContext.GLOBAL_SCOPE , что указывает область видимости для возврата. Реализации ScriptContext могут определять дополнительные области видимости. Если значение по умолчанию ScriptContext ScriptEngine определяет дополнительные области видимости, любая из них может быть передана для получения соответствующей Bindings.
Возвращает:
Bindings с указанной областью видимости.
Исключения:
IllegalArgumentException - если указанная область видимости недействительна

setBindings

void setBindings(Bindings bindings,
                 int scope)

Устанавливает область видимости именованных значений, которые будут использоваться скриптами. Возможные области видимости:

  • ScriptContext.ENGINE_SCOPE - Указанная Bindings заменяет область видимости движка ScriptEngine.
  • ScriptContext.GLOBAL_SCOPE - Указанная Bindings должна быть видна как GLOBAL_SCOPE.
  • Любое другое значение области видимости, определенное в значении по умолчанию ScriptContext ScriptEngine.


Метод должен иметь тот же эффект, что и вызов метода setBindings ScriptContext с соответствующим значением scope по умолчанию ScriptContext ScriptEngine.

Параметры:
bindings - Bindings для указанной области видимости.
scope - Указанная область видимости. Либо ScriptContext.ENGINE_SCOPE, ScriptContext.GLOBAL_SCOPE, либо любое другое допустимое значение области видимости.
Исключения:
IllegalArgumentException - если область видимости недействительна
NullPointerException - если привязки равны null, а область видимости равна ScriptContext.ENGINE_SCOPE

createBindings

Bindings createBindings()

Возвращает неинициализированный Bindings.

Возвращает:
Bindings , который может быть использован для замены состояния этого ScriptEngine.

getContext

ScriptContext getContext()

Возвращает значение по умолчанию ScriptContext ScriptEngine , чьи привязки, устройство чтения и записи используются для выполнения скриптов, когда не указан ScriptContext.

Возвращает:
Значение по умолчанию ScriptContext ScriptEngine.

setContext

void setContext(ScriptContext context)

Устанавливает значение по умолчанию ScriptContext ScriptEngine , чьи привязки, устройство чтения и записи используются для выполнения скриптов, когда не указан ScriptContext.

Параметры:
context - ScriptContext , который заменит значение по умолчанию ScriptContext в ScriptEngine.
Исключения:
NullPointerException - если контекст равен null.

getFactory

ScriptEngineFactory getFactory()

Возвращает ScriptEngineFactory для класса, к которому принадлежит этот ScriptEngine.

Возвращает:
ScriptEngineFactory

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.scripting/javax/script/ScriptEngine.html

Spec-Zone .ru
спецификации, руководства, описания, API