1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.neo4j.server.webadmin.console;
21
22 import groovy.lang.Binding;
23
24 import org.codehaus.groovy.tools.shell.Groovysh;
25 import org.codehaus.groovy.tools.shell.IO;
26
27 import com.tinkerpop.gremlin.Gremlin;
28 import com.tinkerpop.gremlin.Imports;
29 import com.tinkerpop.gremlin.console.NullResultHookClosure;
30
31 public class GremlinWebConsole
32 {
33 private static final Groovysh ERROR_STATE_PLACEHOLDER_FOR_ERRANT_GROOVY_SHELLS = null;
34 private final Groovysh groovy;
35
36 public GremlinWebConsole( Binding bindings, IO io )
37 {
38 groovy = new Groovysh( bindings, io );
39
40 groovy.setResultHook( new NullResultHookClosure( groovy ) );
41 for ( String imps : Imports.getImports() )
42 {
43 groovy.execute( "import " + imps );
44 }
45 groovy.setResultHook( new GremlinResultHook( groovy, io ) );
46 Gremlin.load();
47 }
48
49 protected GremlinWebConsole()
50 {
51 groovy = ERROR_STATE_PLACEHOLDER_FOR_ERRANT_GROOVY_SHELLS;
52 }
53
54 public void execute( String script )
55 {
56 groovy.execute( script );
57 }
58 }