1   /**
2    * Copyright (c) 2002-2011 "Neo Technology,"
3    * Network Engine for Objects in Lund AB [http://neotechnology.com]
4    *
5    * This file is part of Neo4j.
6    *
7    * Neo4j is free software: you can redistribute it and/or modify
8    * it under the terms of the GNU General Public License as published by
9    * the Free Software Foundation, either version 3 of the License, or
10   * (at your option) any later version.
11   *
12   * This program is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   * GNU General Public License for more details.
16   *
17   * You should have received a copy of the GNU General Public License
18   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
19   */
20  //
21  //package org.neo4j.server.webadmin.console;
22  //
23  //import org.mozilla.javascript.Context;
24  //import org.mozilla.javascript.ScriptableObject;
25  //import org.mozilla.javascript.WrappedException;
26  //import org.neo4j.app.awesome_shell.kernel.SimpleGraphDatabase;
27  //import org.neo4j.server.database.Database;
28  //
29  //public class AshSession implements ScriptSession
30  //{
31  //    private Context ctx;
32  //    private ScriptableObject scope;
33  //    private StringBuilder buffer = new StringBuilder();
34  //
35  //    public AshSession( Database database )
36  //    {
37  //        ctx = Context.enter();
38  //        scope = ctx.initStandardObjects();
39  //        SimpleGraphDatabase db = new SimpleGraphDatabase( database.graph );
40  //        Object wrappedObject = Context.javaToJS( db, scope );
41  //        ScriptableObject.putProperty( scope, "db", wrappedObject );
42  //        Context.exit();
43  //    }
44  //
45  //    @Override
46  //    public String evaluate( String script )
47  //    {
48  //        Context.enter();
49  //        try
50  //        {
51  //            buffer.append( script );
52  //
53  //            if ( ctx.stringIsCompilableUnit( buffer.toString() ) )
54  //            {
55  //                String result = runCodeInBuffer();
56  //                clearBuffer();
57  //                return result;
58  //            } else
59  //            {
60  //                return "";
61  //            }
62  //        } finally
63  //        {
64  //            Context.exit();
65  //        }
66  //    }
67  //
68  //    private void clearBuffer()
69  //    {
70  //        buffer = new StringBuilder();
71  //    }
72  //
73  //    private String runCodeInBuffer()
74  //    {
75  //        try
76  //        {
77  //            Object result = ctx.evaluateString( scope, buffer.toString(), "", 1, null );
78  //            return Context.toString( result );
79  //        } catch ( WrappedException e )
80  //        {
81  //            return e.getWrappedException().getClass().getCanonicalName() + ": " + e.getWrappedException().getMessage();
82  //        }
83  //
84  //    }
85  //
86  //
87  //}