* @throws Exception if a target instance throws and exception
* @throws NoSuchOperationException if the operation signature is not found in the map
* @throws IllegalStateException if the gbean instance has been destroyed
*/
public Object invoke(String operationName, Object[] arguments, String[] types) throws Exception, NoSuchOperationException {
GOperationSignature signature = new GOperationSignature(operationName, types);
Integer index = (Integer) operationIndex.get(signature);
if (index == null) {
throw new NoSuchOperationException("Unknown operation " + signature);
}
GBeanOperation operation = operations[index.intValue()];