PyObject (Java-Python Bridge 0.8 Java API)
Date: 2015-11-20

org.jpy

## Class PyObject

- java.lang.Object
- - org.jpy.PyObject

- Direct Known Subclasses:
    PyModule

      public class PyObject
      extends Object

  Represents a Python object (of Python/C API type `PyObject*`) in the Python interpreter.
  Since:
    0.7

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `PyObject` | `call(String name, Object... args)` Call the callable Python object with the given name and arguments.
    `PyObject` | `callMethod(String name, Object... args)` Call the callable Python method with the given name and arguments.
    `<T> T` | `createProxy(Class<T> type)` Create a Java proxy instance of this Python object which contains compatible methods to the ones provided in the interface given by the `type` parameter.
    `Object` | `createProxy(PyLib.CallableKind callableKind, Class<?>... types)` Create a Java proxy instance of this Python object (or module) which contains compatible methods (or functions) to the ones provided in the interfaces given by all the `type` parameters.
    `boolean` | `equals(Object o)` Indicates whether some other object is "equal to" this one.
    `static PyObject` | `executeCode(String code, PyInputMode mode)` Executes Python source code.
    `static PyObject` | `executeCode(String code, PyInputMode mode, Map<String,Object> globals, Map<String,Object> locals)` Executes Python source code in the context specified by the `globals` and `locals` maps.
    `protected void` | `finalize()` Decrements the reference count of the Python object which this class represents.
    `PyObject` | `getAttribute(String name)` Gets the Python value of a Python attribute.
    `<T> T` | `getAttribute(String name, Class<? extends T> valueType)` Gets the value of a Python attribute as Java object of a given type.
    `double` | `getDoubleValue()`
    `int` | `getIntValue()`
    `<T> T[]` | `getObjectArrayValue(Class<? extends T> itemType)` Gets this Python object as Java `Object[]` value of the given item type.
    `Object` | `getObjectValue()` Gets this Python object as Java `Object` value.
    `long` | `getPointer()`
    `String` | `getStringValue()`
    `int` | `hashCode()` Computes a hash code from this object's pointer value.
    `<T> void` | `setAttribute(String name, T value)` Sets the value of a Python attribute from the given Java object.
    `<T> void` | `setAttribute(String name, T value, Class<? extends T> valueType)` Sets the value of a Python attribute from the given Java object and Java type (if given).
    `String` | `toString()` Gets a string representation of the object using the format "PyObject(pointer=<value>)".

    - ### Methods inherited from class java.lang.Object

      `clone, getClass, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### executeCode

          public static PyObject executeCode(String code,
                                             PyInputMode mode)

      Executes Python source code.
      Parameters:
        `code` - The Python source code.
        `mode` - The execution mode.
      Returns:
        The result of executing the code as a Python object.

    - #### executeCode

          public static PyObject executeCode(String code,
                                             PyInputMode mode,
                                             Map<String,Object> globals,
                                             Map<String,Object> locals)

      Executes Python source code in the context specified by the `globals` and `locals` maps.

      If a Java value in the `globals` and `locals` maps cannot be directly converted into a Python object, a Java wrapper will be created instead. If a Java value is a wrapped Python object of type `PyObject`, it will be unwrapped.

      Parameters:
        `code` - The Python source code.
        `mode` - The execution mode.
        `globals` - The global variables to be set.
        `locals` - The locals variables to be set.
      Returns:
        The result of executing the code as a Python object.

    - #### finalize

          protected void finalize()
                           throws Throwable

      Decrements the reference count of the Python object which this class represents.
      Overrides:
        `finalize` in class `Object`
      Throws:
        `Throwable` - If any error occurs.

    - #### getPointer

          public final long getPointer()

      Returns:
        A unique pointer to the wrapped Python object.

    - #### getIntValue

          public int getIntValue()

      Returns:
        This Python object as a Java `int` value.

    - #### getDoubleValue

          public double getDoubleValue()

      Returns:
        This Python object as a Java `double` value.

    - #### getStringValue

          public String getStringValue()

      Returns:
        This Python object as a Java `String` value.

    - #### getObjectValue

          public Object getObjectValue()

      Gets this Python object as Java `Object` value.

      If this Python object cannot be converted into a Java object, a Java wrapper of type `PyObject` will be returned. If this Python object is a wrapped Java object, it will be unwrapped.

      Returns:
        This Python object as a Java `Object` value.

    - #### getObjectArrayValue

          public <T> T[] getObjectArrayValue(Class<? extends T> itemType)

      Gets this Python object as Java `Object[]` value of the given item type. Appropriate type conversions from Python to Java will be performed as needed.

      If a Python item value cannot be converted into a Java item object, a Java wrapper of type `PyObject` will be returned. If a Python item value is a wrapped Java object, it will be unwrapped. If this Python object value is a wrapped Java array object of given type, it will be unwrapped.

      Type Parameters:
        `T` - The expected item type name.
      Parameters:
        `itemType` - The expected item type class.
      Returns:
        This Python object as a Java `Object[]` value.

    - #### getAttribute

          public PyObject getAttribute(String name)

      Gets the Python value of a Python attribute.

      If the Python value cannot be converted into a Java object, a Java wrapper of type `PyObject` will be returned. If the Python value is a wrapped Java object, it will be unwrapped.

      Parameters:
        `name` - A name of the Python attribute.
      Returns:
        A wrapper for the returned Python attribute value.

    - #### getAttribute

          public <T> T getAttribute(String name,
                                    Class<? extends T> valueType)

      Gets the value of a Python attribute as Java object of a given type. Appropriate type conversions from Python to Java will be performed using the given value type.

      If the Python value cannot be converted into a Java object, a Java wrapper of type `PyObject` will be returned. If the Python value is a wrapped Java object, it will be unwrapped.

      Type Parameters:
        `T` - The expected value type name.
      Parameters:
        `name` - A name of the Python attribute.
        `valueType` - The type of the value or `null`, if unknown
      Returns:
        The Python attribute value as Java object.

    - #### setAttribute

          public <T> void setAttribute(String name,
                                       T value)

      Sets the value of a Python attribute from the given Java object.

      If the Java `value` cannot be directly converted into a Python object, a Java wrapper will be created instead. If the Java `value` is a wrapped Python object of type `PyObject`, it will be unwrapped.

      Type Parameters:
        `T` - The value type name.
      Parameters:
        `name` - A name of the Python attribute.
        `value` - The new attribute value as Java object.

    - #### setAttribute

          public <T> void setAttribute(String name,
                                       T value,
                                       Class<? extends T> valueType)

      Sets the value of a Python attribute from the given Java object and Java type (if given). Appropriate type conversions from Java to Python will be performed using the given value type.

      If the Java `value` cannot be directly converted into a Python object, a Java wrapper will be created instead. If the Java `value` is a wrapped Python object of type `PyObject`, it will be unwrapped.

      Type Parameters:
        `T` - The value type name.
      Parameters:
        `name` - A name of the Python attribute.
        `value` - The new attribute value as Java object.
        `valueType` - The value type used for the conversion. May be `null`.

    - #### callMethod

          public PyObject callMethod(String name,
                                     Object... args)

      Call the callable Python method with the given name and arguments.

      If a Java value in `args` cannot be directly converted into a Python object, a Java wrapper will be created instead. If the Java value in `args` is a wrapped Python object of type `PyObject`, it will be unwrapped.

      Parameters:
        `name` - A name of a Python attribute that evaluates to a callable object.
        `args` - The arguments for the method call.
      Returns:
        A wrapper for the returned Python object.

    - #### call

          public PyObject call(String name,
                               Object... args)

      Call the callable Python object with the given name and arguments.

      If a Java value in `args` cannot be directly converted into a Python object, a Java wrapper will be created instead. If the Java value in `args` is a wrapped Python object of type `PyObject`, it will be unwrapped.

      Parameters:
        `name` - A name of a Python attribute that evaluates to a callable object,
        `args` - The arguments for the call.
      Returns:
        A wrapper for the returned Python object.

    - #### createProxy

          public <T> T createProxy(Class<T> type)

      Create a Java proxy instance of this Python object which contains compatible methods to the ones provided in the interface given by the `type` parameter.
      Type Parameters:
        `T` - The interface name.
      Parameters:
        `type` - The interface class.
      Returns:
        A (proxy) instance implementing the given interface.

    - #### createProxy

          public Object createProxy(PyLib.CallableKind callableKind,
                                    Class<?>... types)

      Create a Java proxy instance of this Python object (or module) which contains compatible methods (or functions) to the ones provided in the interfaces given by all the `type` parameters.
      Parameters:
        `callableKind` - The kind of calls to be made.
        `types` - The interface types.
      Returns:
        A instance implementing the all the given interfaces which serves as a proxy for the given Python object (or module).

    - #### toString

          public final String toString()

      Gets a string representation of the object using the format "PyObject(pointer=<value>)".
      Overrides:
        `toString` in class `Object`
      Returns:
        A string representation of the object.
      See Also:
        `getPointer()`

    - #### equals

          public final boolean equals(Object o)

      Indicates whether some other object is "equal to" this one.
      Overrides:
        `equals` in class `Object`
      Parameters:
        `o` - The other object.
      Returns:
        `true` if the other object is an instance of `PyObject` and if their pointers are equal, `false` otherwise.
      See Also:
        `getPointer()`

    - #### hashCode

          public final int hashCode()

      Computes a hash code from this object's pointer value.
      Overrides:
        `hashCode` in class `Object`
      Returns:
        A hash code value for this object.
      See Also:
        `getPointer()`

Copyright © 2014–2015 Brockmann Consult GmbH. All rights reserved.