    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  //}