Spec-Zone.ru › OpenJDK 21

Интерфейс 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(String obj, String m, String... args)
Возвращает строку, которую можно использовать для вызова метода объекта Java с использованием синтаксиса поддерживаемого языка сценариев.
List<String> getMimeTypes()
Возвращает неизменяемый список mime типов, связанных со скриптами, которые могут быть выполнены движком.
List<String> getNames()
Возвращает неизменяемый список коротких имен ScriptEngine, которые могут использоваться для идентификации ScriptEngine ScriptEngineManager.
String getOutputStatement(String toDisplay)
Возвращает строку, которая может быть использована как оператор для отображения указанной строки с использованием синтаксиса поддерживаемого языка сценариев.
Object getParameter(String key)
Возвращает значение атрибута, значение которого может быть специфичным для реализации.
String getProgram(String... statements)
Возвращает допустимую исполняемую программу языка сценариев с заданными операторами.
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()
Возвращает неизменяемый список MIME-типов, связанных со скриптами, которые могут быть выполнены движком. Список используется классом 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)
Возвращает строку, которую можно использовать для вызова метода объекта Java с использованием синтаксиса поддерживаемого языка сценариев. Например, реализация для Javascript-движка может быть:

 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_SCOPE Bindings, или метода setAttribute объекта ScriptContext. Идентификатор, используемый в скриптах, может быть модифицированной формой указанного.
m — Имя вызываемого метода.
args — Имена аргументов в вызове метода.
Возвращает:
Строка, используемая для вызова метода в синтаксисе языка сценариев.
Изначает исключения:
NullPointerException — если obj, m, args или любой из элементов args равен null.

getOutputStatement

String getOutputStatement(String toDisplay)
Возвращает строку, которая может быть использована в качестве инструкции для отображения указанной строки с использованием синтаксиса поддерживаемого языка сценариев. Например, реализация для движка Perl может быть:

 public String getOutputStatement(String toDisplay) {
      return "print(" + toDisplay + ")";
 }
 
Параметры:
toDisplay — Строка, отображаемая возвращаемой инструкцией.
Возвращает:
Строка, используемая для отображения строки в синтаксисе языка сценариев.

getProgram

String getProgram(String... statements)
Возвращает допустимую программу языка сценариев с заданными инструкциями. Например, реализация для PHP-движка может быть:

 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, 2023, 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/21/docs/api/java.scripting/javax/script/ScriptEngineFactory.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API