## php.java.bridge.http
Class Context

    java.lang.Object
      php.java.bridge.http.Context

All Implemented Interfaces:
  Invocable

Direct Known Subclasses:
  Context

    public class Context

extends java.lang.Object
implements Invocable

Emulates a JSR223 script context when the JSR223 classes are not available. The method call(kont) returns false, so that it can be used to check if a script was called from java:
`function toString() {return "hello java, I am a php script, but in your eyes I am an ordinary java object...";}
java_context()->call(java_closure()) || die("This script must be called from java!");`

Author:
  jostb
See Also:
  `IPhpScriptContext`, `ScriptContext`, `PhpSimpleHttpScriptContext`, `PhpScriptContext`

Field Summary
`static int` `ENGINE_SCOPE` The engine scope
`static int` `GLOBAL_SCOPE` The global scope

Constructor Summary
`Context()`

Method Summary
`boolean` `call(PhpProcedureProxy kont)` Call the java continuation with the current continuation `kont` as its argument.
`java.lang.Object` `getAttribute(java.lang.String name)` Retrieves the value for getAttribute(String, int) for the lowest scope in which it returns a non-null value.
`java.lang.Object` `getAttribute(java.lang.String name, int scope)` Retrieves the value associated with specified name in the specified level of scope.
`int` `getAttributesScope(java.lang.String name)` Retrieves the lowest value of scopes for which the attribute is defined.
`java.util.Map` `getMap(int scope)` Retrieves the Map instance associated with the specified level of scope.
`java.io.Writer` `getWriter()` Retrieves an instance of java.io.Writer which can be used by scripts to display their output.
`java.lang.Object` `removeAttribute(java.lang.String name, int scope)` Removes the specified attribute form the specified level of scope.
`void` `setAttribute(java.lang.String name, java.lang.Object value, int scope)` Sets an attribute specified by the name in specified level of scope.
`void` `setMap(java.util.Map map, int scope)` Associates the specified Map with specified level of scope.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### ENGINE_SCOPE

    public static final int ENGINE_SCOPE

  The engine scope

  See Also:
    Constant Field Values

### GLOBAL_SCOPE

    public static final int GLOBAL_SCOPE

  The global scope

  See Also:
    Constant Field Values

Constructor Detail

### Context

    public Context()

Method Detail

### getAttribute

    public java.lang.Object getAttribute(java.lang.String name)
                                  throws java.lang.IllegalArgumentException

  Retrieves the value for getAttribute(String, int) for the lowest scope in which it returns a non-null value.

  Parameters:
    `name` - the name of the attribute
  Returns:
    the value of the attribute
  Throws:
    `java.lang.IllegalArgumentException`

### getAttribute

    public java.lang.Object getAttribute(java.lang.String name,
                                         int scope)
                                  throws java.lang.IllegalArgumentException

  Retrieves the value associated with specified name in the specified level of scope. Returns null if no value is associated with specified key in specified level of scope.

  Parameters:
    `name` - the name of the attribute
    `scope` - the level of scope
  Returns:
    the value value associated with the specified name in specified level of scope
  Throws:
    `java.lang.IllegalArgumentException`

### getAttributesScope

    public int getAttributesScope(java.lang.String name)

  Retrieves the lowest value of scopes for which the attribute is defined. If there is no associate scope with the given attribute (-1) is returned.

  Parameters:
    `name` - the name of attribute
  Returns:
    the value of level of scope

### getMap

    public java.util.Map getMap(int scope)

  Retrieves the Map instance associated with the specified level of scope.

  Parameters:
    `scope` - the level of the scope
  Returns:
    the Map associated with the specified level of scope

### getWriter

    public java.io.Writer getWriter()
                             throws java.io.IOException

  Retrieves an instance of java.io.Writer which can be used by scripts to display their output.

  Returns:
    an instance of java.io.Writer
  Throws:
    `java.io.IOException`

### removeAttribute

    public java.lang.Object removeAttribute(java.lang.String name,
                                            int scope)
                                     throws java.lang.IllegalArgumentException

  Removes the specified attribute form the specified level of scope.

  Parameters:
    `name` - the name of the attribute
    `scope` - the level of scope
  Returns:
    value which is removed
  Throws:
    `java.lang.IllegalArgumentException`

### setAttribute

    public void setAttribute(java.lang.String name,
                             java.lang.Object value,
                             int scope)
                      throws java.lang.IllegalArgumentException

  Sets an attribute specified by the name in specified level of scope.

  Parameters:
    `name` - the name of the attribute
    `value` - the value of the attribute
    `scope` - the level of the scope
  Throws:
    `IllegalArguementException` - if the name is null scope is invlaid
    `java.lang.IllegalArgumentException`

### setMap

    public void setMap(java.util.Map map,
                       int scope)
                throws java.lang.IllegalArgumentException

  Associates the specified Map with specified level of scope.

  Parameters:
    `map` - the Map to be associated with specified level of scope
    `scope` - the level of scope
  Throws:
    `java.lang.IllegalArgumentException`

### call

    public boolean call(PhpProcedureProxy kont)

  Description copied from interface: `Invocable`
  Call the java continuation with the current continuation `kont` as its argument.

  Specified by:
    `call` in interface `Invocable`
  Parameters:
    `kont` - The continuation.
  Returns:
    True on success, false otherwise.