// Copyright (c) Corporation for National Research Initiatives package org.python.core; import java.util.Vector; public class PyCompoundCallable extends PyObject { private Vector callables; private PySystemState systemState; public PyCompoundCallable() { callables = new Vector(); systemState = Py.getSystemState(); } public void append(PyObject callable) { callables.addElement(callable); } public void clear() { callables.removeAllElements(); } public PyObject __call__(PyObject[] args, String[] keywords) { // Set the system state to handle callbacks from java threads Py.setSystemState(systemState); int n = callables.size(); //System.out.println("callable: "+n); for (int i = 0; i < n; i++) { ((PyObject) callables.elementAt(i)).__call__(args, keywords); } return Py.None; } public String toString() { return "<CompoundCallable with " + callables.size() + " callables>"; } }