private Statement nextChainedInvoker(Statement methodInvoker) { Field[] declaredFields = methodInvoker.getClass().getDeclaredFields(); for (Field field : declaredFields) { Statement statement = statementOrNull(methodInvoker, field); if (statement != null) return statement; } return null; }