org.python.modules._weakref

## Class GlobalRef

- java.lang.Object
- - java.lang.ref.Reference<T>
  - - java.lang.ref.WeakReference<PyObject>
    - - org.python.modules._weakref.GlobalRef

    public class GlobalRef
    extends WeakReference<PyObject>

### Constructor Summary

Constructors
Constructor and Description
`GlobalRef(PyObject object)`

### Method Summary

Methods
`void` `add(AbstractReference ref)`
`int` `count()`
`boolean` `equals(Object o)` Allow `GlobalRef`s to be used as hashtable-keys.
`static int` `getCount(PyObject object)` Return the number of references to the specified `PyObject`.
`static PyList` `getRefs(PyObject object)` Return a list of references to the specified `PyObject`.
`static boolean` `hasDelayedCallbacks()`
`int` `hashCode()` Allows `GlobalRef` to be used as hashtable-keys.
`static GlobalRef` `newInstance(PyObject object)` Create a new tracked `GlobalRef`.
`static void` `processDelayedCallbacks()` Call all callbacks that were enqueued via `delayedCallback(GlobalRef)` method.
`int` `pythonHashCode()` The publicly used `hashCode`, for the {@link org.python.modules.
`PyList` `refs()`
`void` `restore(PyObject formerReferent)` Restores this weak reference to its former referent.

### Methods inherited from class java.lang.ref.Reference

`clear, enqueue, get, isEnqueued`

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

`getClass, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### GlobalRef

    public GlobalRef(PyObject object)

### Method Detail

#### add

    public void add(AbstractReference ref)

#### processDelayedCallbacks

    public static void processDelayedCallbacks()

Call all callbacks that were enqueued via `delayedCallback(GlobalRef)` method.

See Also:
  `delayedCallback(GlobalRef)`

#### hasDelayedCallbacks

    public static boolean hasDelayedCallbacks()

#### count

    public int count()

#### refs

    public PyList refs()

#### newInstance

    public static GlobalRef newInstance(PyObject object)

Create a new tracked `GlobalRef`.

Parameters:
  `object` - a `PyObject` to reference
Returns:
  a new tracked `GlobalRef`

#### restore

    public void restore(PyObject formerReferent)

Restores this weak reference to its former referent. This actually means that a fresh `GlobalRef` is created and inserted into all adjacent `AbstractReference`s. The current `GlobalRef` is disbanded. If the given `PyObject` is not the former referent of this weak reference, an `IllegalArgumentException` is thrown.

Throws:
  `IllegalArgumentException` - if `formerReferent` is not the actual former referent.

#### getCount

    public static int getCount(PyObject object)

Return the number of references to the specified `PyObject`.

Parameters:
  `object` - a PyObject
Returns:
  an int reference count

#### getRefs

    public static PyList getRefs(PyObject object)

Return a list of references to the specified `PyObject`.

Parameters:
  `object` - a `PyObject`
Returns:
  a `PyList` of references. May be empty.

#### equals

    public boolean equals(Object o)

Allow `GlobalRef`s to be used as hashtable-keys.

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Allows `GlobalRef` to be used as hashtable-keys.

Overrides:
  `hashCode` in class `Object`
Returns:
  a hashCode `int`-value

#### pythonHashCode

    public int pythonHashCode()

The publicly used `hashCode`, for the `AbstractReference` wrapper.

Returns:
  a hashCode `int`-value