Интерфейс ScriptEngineFactory
public interface ScriptEngineFactory
ScriptEngineFactory используется для описания и создания экземпляров ScriptEngines. Каждый класс, реализующий
ScriptEngine, имеет соответствующую фабрику, которая предоставляет метаданные, описывающие класс движка. ScriptEngineManager использует механизм загрузчика поставщиков услуг, описанный в классе ServiceLoader, для получения экземпляров ScriptEngineFactory. См. ScriptEngineManager() и ScriptEngineManager(java.lang.ClassLoader).- Since:
- 1.6
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
String |
getEngineName() |
Возвращает полное имя ScriptEngine. |
String |
getEngineVersion() |
Возвращает версию ScriptEngine. |
List<String> |
getExtensions() |
Возвращает неизменяемый список расширений файлов, которые обычно идентифицируют скрипты, написанные на языке, поддерживаемом этим ScriptEngine. |
String |
getLanguageName() |
Возвращает имя языка сценариев, поддерживаемого этим ScriptEngine. |
String |
getLanguageVersion() |
Возвращает версию языка сценариев, поддерживаемого этим ScriptEngine. |
String |
getMethodCallSyntax |
Возвращает строку, которая может быть использована для вызова метода объекта Java с использованием синтаксиса поддерживаемого языка сценариев. |
List<String> |
getMimeTypes() |
Возвращает неизменяемый список MIME-типов, связанных со скриптами, которые могут быть выполнены движком. |
List<String> |
getNames() |
Возвращает неизменяемый список коротких имен для ScriptEngine, которые могут быть использованы для идентификации ScriptEngine ScriptEngineManager. |
String |
getOutputStatement |
Возвращает строку, которая может быть использована в качестве оператора для отображения указанной строки с использованием синтаксиса поддерживаемого языка сценариев. |
Object |
getParameter |
Возвращает значение атрибута, смысл которого может быть специфичным для реализации. |
String |
getProgram |
Возвращает допустимую исполняемую программу языка сценариев с заданными операторами. |
ScriptEngine |
getScriptEngine() |
Возвращает экземпляр ScriptEngine, связанный с этим ScriptEngineFactory. |
Подробное описание методов
getEngineName
String getEngineName()
ScriptEngine. Например, реализация на основе Javascript-движка Mozilla Rhino может вернуть Rhino Mozilla Javascript Engine.- Возвращает:
- Имя реализации движка.
getEngineVersion
String getEngineVersion()
ScriptEngine.- Возвращает:
- Версию реализации
ScriptEngine.
getExtensions
List<String> getExtensions()
ScriptEngine. Массив используется ScriptEngineManager для реализации своего метода getEngineByExtension. - Возвращает:
- Список расширений.
getMimeTypes
List<String> getMimeTypes()
ScriptEngineManager для реализации своего метода getEngineByMimetype. - Возвращает:
- Список MIME-типов.
getNames
List<String> getNames()
ScriptEngine, которые могут использоваться для идентификации ScriptEngine ScriptEngineManager. Например, реализация на основе Javascript-движка Mozilla Rhino может вернуть список, содержащий {"javascript", "rhino"}.- Возвращает:
- неизменяемый список коротких имён
getLanguageName
String getLanguageName()
ScriptEngine.- Возвращает:
- Имя поддерживаемого языка.
getLanguageVersion
String getLanguageVersion()
ScriptEngine.- Возвращает:
- Версия поддерживаемого языка.
getParameter
Object getParameter(String key)
- ScriptEngine.ENGINE
- ScriptEngine.ENGINE_VERSION
- ScriptEngine.LANGUAGE
- ScriptEngine.LANGUAGE_VERSION
- ScriptEngine.NAME
Значения для этих ключей — это строки, возвращаемые getEngineName, getEngineVersion, getLanguageName, getLanguageVersion для первых четырёх ключей соответственно. Для ключа NAME возвращается одна из строк, возвращаемых getNames.
Также определён зарезервированный ключ THREADING, значение которого описывает поведение движка относительно одновременного выполнения скриптов и поддержания состояния. Эти значения для ключа THREADING:
-
null- Реализация движка не потокобезопасна и не может использоваться для одновременного выполнения скриптов на нескольких потоках. -
"MULTITHREADED"- Реализация движка внутренне потокобезопасна, и скрипты могут выполняться параллельно, хотя эффекты выполнения скрипта в одном потоке могут быть видны скриптам в других потоках. -
"THREAD-ISOLATED"- Реализация удовлетворяет требованиям "MULTITHREADED", и также движок поддерживает независимые значения для символов в скриптах, выполняющихся в разных потоках. -
"STATELESS"- Реализация удовлетворяет требованиям"THREAD-ISOLATED". Кроме того, выполнение скриптов не изменяет отображения вBindings, что является областью действия движкаScriptEngine. В частности, ключи вBindingsи их соответствующие значения одинаковы до и после выполнения скрипта.
Реализации могут определить ключи, специфичные для реализации.
- Параметры:
-
key- Имя параметра - Возвращает:
- Значение для данного параметра. Возвращает
nullесли ключу не назначено значение. - Исключение:
-
NullPointerException- если ключ null.
getMethodCallSyntax
String getMethodCallSyntax(String obj, String m, String... args)
public String getMethodCallSyntax(String obj,
String m, String... args) {
String ret = obj;
ret += "." + m + "(";
for (int i = 0; i < args.length; i++) {
ret += args[i];
if (i < args.length - 1) {
ret += ",";
}
}
ret += ")";
return ret;
}
- Параметры:
-
obj- Имя, представляющее объект, метод которого должен быть вызван. Имя используется для создания привязок с помощью методаputклассаScriptEngine, методаputобъектаENGINE_SCOPEBindings, или методаsetAttributeобъектаScriptContext. Идентификатор, используемый в скриптах, может быть декорированной формой указанного. -
m- Имя вызываемого метода. -
args- имена аргументов в вызове метода. - Возвращает:
- Строка, используемая для вызова метода в синтаксисе языка сценариев.
- Исключение:
-
NullPointerException- если obj или m или args или любой из элементов args равен null.
getOutputStatement
String getOutputStatement(String toDisplay)
public String getOutputStatement(String toDisplay) {
return "print(" + toDisplay + ")";
}
- Параметры:
-
toDisplay- Строка, которая должна быть отображена возвращаемым оператором. - Возвращает:
- Строка, используемая для отображения строки в синтаксисе языка сценариев.
getProgram
String getProgram(String... statements)
public String getProgram(String... statements) {
String retval = "<?\n";
int len = statements.length;
for (int i = 0; i < len; i++) {
retval += statements[i] + ";\n";
}
return retval += "?>";
}
- Параметры:
-
statements- Операторы, которые должны быть выполнены. Могут быть возвращаемыми значениями вызовов методовgetMethodCallSyntaxиgetOutputStatement. - Возвращает:
- Программа.
- Исключение:
-
NullPointerException- если массивstatementsили любой из его элементов равен null.
getScriptEngine
ScriptEngine getScriptEngine()
ScriptEngine , связанный с этим ScriptEngineFactory. Как правило, возвращается новый ScriptEngine, но реализации могут использовать пулы, совместное использование или повторное использование движков.- Возвращает:
- Новый экземпляр
ScriptEngine.
© 1993, 2021, 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/17/docs/api/java.scripting/javax/script/ScriptEngineFactory.html