ScriptEngine
ScriptEngine (스크립트 실행 엔진)
ScriptEngine은 스크립트 실행 기능의 중심이 되는 인터페이스로, 이 명세의 모든 구현에서 그 메서드가 완전하게 동작해야 하는 가장 기본적인 인터페이스입니다. 이 인터페이스에 맞춰 작성된 애플리케이션은 다른 구현에서도 최소한의 수정만으로 동작할 수 있도록 설계되어 있어요.
본문
ScriptEngine은 스크립트를 실행하는 메서드와 값을 설정하고 얻는 메서드를 함께 제공합니다. 값을 담는 key/value 쌍은 두 종류로 나뉘어요. 첫 번째 종류는 키가 이 명세나 개별 구현에서 미리 예약되어 정의된 쌍이고, 이 쌍의 값들은 정해진 의미를 가집니다. 두 번째 종류는 Java 언어의 Bindings를 만드는 쌍으로, 그 값들은 보통 스크립트 안에서 해당 키나 그 키를 꾸민 형태로 표현됩니다.
대표적인 상수로 다음이 있습니다.
ARGV— 스크립트에 넘겨지는 인자 목록을 가리키는 키FILENAME— 스크립트가 담긴 파일 이름을 가리키는 키ENGINE— 엔진의 이름을 가리키는 키ENGINE_VERSION— 엔진의 버전을 가리키는 키NAME— 엔진의 짧은 이름을 가리키는 키LANGUAGE— 엔진이 지원하는 언어를 가리키는 키LANGUAGE_VERSION— 그 언어의 버전을 가리키는 키
스크립트 실행은 eval 메서드가 담당하며, 스크립트는 문자열이나 Reader, Bindings, ScriptContext와 함께 전달할 수 있습니다. 값의 읽고 쓰기는 put과 get으로 하며, ScriptContext 관련 메서드로 현재 실행 문맥과 범위를 다룹니다.
Object eval(String script, ScriptContext context) throws ScriptException
Object eval(Reader reader, ScriptContext context) throws ScriptException
Object eval(String script) throws ScriptException
Object eval(Reader reader) throws ScriptException
Object eval(String script, Bindings n) throws ScriptException
Object eval(Reader reader, Bindings n) throws ScriptException
void put(String key, Object value)
Object get(String key)
Bindings getBindings(int scope)
void setBindings(Bindings bindings, int scope)
Bindings createBindings()
ScriptContext getContext()
void setContext(ScriptContext context)
ScriptEngineFactory getFactory()