package com.tinkerpop.rexster.protocol;
import org.apache.commons.configuration.HierarchicalConfiguration;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
/**
* Configuration class for a ScriptEngine implementation.
*
* @author Stephen Mallette (http://stephen.genoprime.com)
* @author Blake Eggleston (bdeggleston.github.com)
*/
public class EngineConfiguration {
private final int resetCount;
private final Set<String> initScriptFiles;
private final String scriptEngineName;
private final Set<String> imports;
private final Set<String> staticImports;
public EngineConfiguration(final HierarchicalConfiguration configuration) {
this.scriptEngineName = configuration.getString("name", "gremlin-groovy");
this.initScriptFiles = new HashSet<String>(configuration.getList("init-scripts", new ArrayList()));
this.resetCount = configuration.getInt("reset-threshold", EngineController.RESET_NEVER);
this.imports = new HashSet<String>(configuration.getList("imports", new ArrayList()));
this.staticImports = new HashSet<String>(configuration.getList("static-imports", new ArrayList()));
}
public EngineConfiguration(final String scriptEngineName, final int resetCount, final String initScriptFile,
final Set<String> imports, final Set<String> staticImports) {
this.resetCount = resetCount;
this.initScriptFiles = new HashSet<String>();
this.initScriptFiles.add(initScriptFile);
this.scriptEngineName = scriptEngineName;
this.imports = imports;
this.staticImports = staticImports;
}
public int getResetCount() {
return resetCount;
}
public Set<String> getInitScriptFiles() {
return initScriptFiles;
}
public String getScriptEngineName() {
return scriptEngineName;
}
public Set<String> getImports() {
return imports;
}
public Set<String> getStaticImports() {
return staticImports;
}
}