/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.scripting; import javax.script.ScriptEngine; import de.rcenvironment.core.utils.scripting.ScriptLanguage; import de.rcenvironment.core.utils.scripting.ScriptLanguage.NoEngineException; /** * Service interface to be implemented by providers providing access to scripting. * * @author Christian Weiss */ public interface ScriptingService { /** * Returns whether a {@link ScriptEngine} for the given extension is registered. * * @param language the language to be supported * @return true, if a {@link ScriptEngine} for the given extension is registered */ boolean supportsScriptLanguage(ScriptLanguage language); /** * Creates and returns a {@link ScriptEngine} instance handling scripts of the specified * {@link ScriptLanguage}. * * @param language the {@link ScriptLanguage} to be supported by the returned * {@link ScriptEngine} * @return a {@link ScriptEngine} supporting scripts of the specified {@link ScriptLanguage} * @throws NoEngineException if no {@link ScriptEngine} is registered, can be checked via * {@link #hasScriptEngine()} */ ScriptEngine createScriptEngine(ScriptLanguage language) throws NoEngineException; }