List<GdbMiResult> results = record.results;
// If it is a 'done' event then search for a more specific event type
if (commandType != null && clazz.equals(GdbDoneEvent.class)) {
for (Class<?> doneEventClass : GdbMiEventTypes.doneEventTypes) {
GdbMiDoneEvent doneEventAnnotation =
doneEventClass.getAnnotation(GdbMiDoneEvent.class);
if (doneEventAnnotation == null) {
m_log.warn("Class " + doneEventClass.getName() + " is in the " +
"GdbMiEventTypes.doneEventTypes list but does not have a" +
"GdbMiDoneEvent annotation");
continue;
}
if (doneEventAnnotation.command().equals(commandType)) {
// Found a match; check if we need to transpose a specific result
// onto this class
if (!doneEventAnnotation.transpose().isEmpty()) {
List<GdbMiResult> transposedResults = transposeDoneEvent(record,
doneEventAnnotation);
if (transposedResults == null) {
m_log.warn("Class " + doneEventClass.getName() + " is " +
"trying to transpose '" +
doneEventAnnotation.transpose() + "', but the result " +
"does not exist or is not a tuple or list of results");
break;
}
results = transposedResults;