core/src/main/java/com/orientechnologies/orient/core/command/script/OScriptManager.java
public void unbind(ScriptEngine scriptEngine, final Bindings binding, final OCommandContext iContext,
      final Map<Object, Object> iArgs) {
    for (OScriptInjection i : injections)
      i.unbind(scriptEngine, binding);

    binding.put("db", null);
    binding.put("orient", null);

    binding.put("util", null);

    binding.put("ctx", null);
    if (iContext != null) {
      for (Entry<String, Object> a : iContext.getVariables().entrySet())
        binding.put(a.getKey(), null);
    }

    if (iArgs != null) {
      for (Entry<Object, Object> a : iArgs.entrySet())
        binding.put(a.getKey().toString(), null);

    }
    binding.put("params", null);
  }

  public void registerInjection(final OScriptInjection iInj) {
    if (!injections.contains(iInj))
      injections.add(iInj);
  }

  public void unregisterInjection(final OScriptInjection iInj) {
    injections.remove(iInj);
  }

  public List<OScriptInjection> getInjections() {
    return injections;
  }

  public OScriptManager registerEngine(final String iLanguage, final ScriptEngineFactory iEngine) {
    engines.put(iLanguage, iEngine);
    return this;
  }

  public OScriptManager registerFormatter(final String iLanguage, final OScriptFormatter iFormatterImpl) {
    formatters.put(iLanguage.toLowerCase(Locale.ENGLISH), iFormatterImpl);
    return this;
  }

  public OScriptManager registerResultHandler(final String iLanguage, final OScriptResultHandler resultHandler) {
    handlers.put(iLanguage.toLowerCase(Locale.ENGLISH), resultHandler);
    return this;
  }

  public Object handleResult(String language, Object result, ScriptEngine engine, Bindings binding, ODatabaseDocument database) {
    OScriptResultHandler handler = handlers.get(language);
    if (handler != null) {
      return handler.handle(result, engine, binding, database);
    } else {
      return result;
    }
  }

  /**
   * Ask to the Script engine all the formatters
   *
   * @return Map containing all the formatters
   */
  public Map<String, OScriptFormatter> getFormatters() {
    return formatters;
  }

  /**
   * Closes the pool for a database. This is called at Orient shutdown and in case a function has been updated.
   *
   * @param iDatabaseName
   */
  public void close(final String iDatabaseName) {
    final ODatabaseScriptManager dbPool = dbManagers.remove(iDatabaseName);
    if (dbPool != null)
      dbPool.close();
  }

}
public void unbind(ScriptEngine scriptEngine, final Bindings binding, final OCommandContext iContext,
      final Map<Object, Object> iArgs) {
    for (OScriptInjection i : injections)
      i.unbind(scriptEngine, binding);

    binding.put("db", null);
    binding.put("orient", null);

    binding.put("util", null);

    binding.put("ctx", null);
    if (iContext != null) {
      for (Entry<String, Object> a : iContext.getVariables().entrySet())
        binding.put(a.getKey(), null);
    }

    if (iArgs != null) {
      for (Entry<Object, Object> a : iArgs.entrySet())
        binding.put(a.getKey().toString(), null);

    }
    binding.put("params", null);
  }

  public void registerInjection(final OScriptInjection iInj) {
    if (!injections.contains(iInj))
      injections.add(iInj);
  }

  public void unregisterInjection(final OScriptInjection iInj) {
    injections.remove(iInj);
  }

  public List<OScriptInjection> getInjections() {
    return injections;
  }

  public OScriptManager registerEngine(final String iLanguage, final ScriptEngineFactory iEngine) {
    engines.put(iLanguage, iEngine);
    return this;
  }

  public OScriptManager registerFormatter(final String iLanguage, final OScriptFormatter iFormatterImpl) {
    formatters.put(iLanguage.toLowerCase(Locale.ENGLISH), iFormatterImpl);
    return this;
  }

  public OScriptManager registerResultHandler(final String iLanguage, final OScriptResultHandler resultHandler) {
    handlers.put(iLanguage.toLowerCase(Locale.ENGLISH), resultHandler);
    return this;
  }

  public Object handleResult(String language, Object result, ScriptEngine engine, Bindings binding, ODatabaseDocument database) {
    OScriptResultHandler handler = handlers.get(language);
    if (handler != null) {
      return handler.handle(result, engine, binding, database);
    } else {
      return result;
    }
  }

  /**
   * Ask to the Script engine all the formatters
   *
   * @return Map containing all the formatters
   */
  public Map<String, OScriptFormatter> getFormatters() {
    return formatters;
  }

  /**
   * Closes the pool for a database. This is called at Orient shutdown and in case a function has been updated.
   *
   * @param iDatabaseName
   */
  public void close(final String iDatabaseName) {
    final ODatabaseScriptManager dbPool = dbManagers.remove(iDatabaseName);
    if (dbPool != null)
      dbPool.close();
  }

}
public void unbind ( ScriptEngine scriptEngine , final Bindings binding , final OCommandContext iContext , final Map < Object , Object > iArgs ) { for ( OScriptInjection i : injections ) i . unbind ( scriptEngine , binding ) ; binding . put ( "db" , null ) ; binding . put ( "orient" , null ) ; binding . put ( "util" , null ) ; binding . put ( "ctx" , null ) ; if ( iContext != null ) { for ( Entry < String , Object > a : iContext . getVariables ( ) . entrySet ( ) ) binding . put ( a . getKey ( ) , null ) ; } if ( iArgs != null ) { for ( Entry < Object , Object > a : iArgs . entrySet ( ) ) binding . put ( a . getKey ( ) . toString ( ) , null ) ; } binding . put ( "params" , null ) ; } public void registerInjection ( final OScriptInjection iInj ) { if ( ! injections . contains ( iInj ) ) injections . add ( iInj ) ; } public void unregisterInjection ( final OScriptInjection iInj ) { injections . remove ( iInj ) ; } public List < OScriptInjection > getInjections ( ) { return injections ; } public OScriptManager registerEngine ( final String iLanguage , final ScriptEngineFactory iEngine ) { engines . put ( iLanguage , iEngine ) ; return this ; } public OScriptManager registerFormatter ( final String iLanguage , final OScriptFormatter iFormatterImpl ) { formatters . put ( iLanguage . toLowerCase ( Locale . ENGLISH ) , iFormatterImpl ) ; return this ; } public OScriptManager registerResultHandler ( final String iLanguage , final OScriptResultHandler resultHandler ) { handlers . put ( iLanguage . toLowerCase ( Locale . ENGLISH ) , resultHandler ) ; return this ; } public Object handleResult ( String language , Object result , ScriptEngine engine , Bindings binding , ODatabaseDocument database ) { OScriptResultHandler handler = handlers . get ( language ) ; if ( handler != null ) { return handler . handle ( result , engine , binding , database ) ; } else { return result ; } } /**
   * Ask to the Script engine all the formatters
   *
   * @return Map containing all the formatters
   */ public Map < String , OScriptFormatter > getFormatters ( ) { return formatters ; } /**
   * Closes the pool for a database. This is called at Orient shutdown and in case a function has been updated.
   *
   * @param iDatabaseName
   */ public void close ( final String iDatabaseName ) { final ODatabaseScriptManager dbPool = dbManagers . remove ( iDatabaseName ) ; if ( dbPool != null ) dbPool . close ( ) ; } }
Unbinds variables

@param binding
Unbinds variables