}
}
responses.clear();
+ if (defaultResponse != null)
+ {
+ defaultResponse.reset();
+ }
firstRunWasCalled = false;
}
return;
}
responses.add(response);
- List<RunResponse> laction = callbacks.get(response);
+
+ List<RunResponse> laction = response.isNull() ? null : callbacks.get(response);
if (laction == null)
{
- System.err.println("Doing nothing for " + response);
+ if (defaultResponse != null)
+ {
+ defaultResponse.ourTrigger = response;
+ defaultResponse.wasRun = true;
+ defaultResponse.run();
+ }
+ else
+ {
+ System.err.println("Doing nothing for " + response);
+ }
return;
}
boolean wasRun = false;
List<Response> responses = new ArrayList<>();
+ RunResponse defaultResponse = null;
+
+ /**
+ * Convenience wrapper for setting default response to a runnable
+ *
+ * @param runnable
+ */
+ public void setDefaultResponse(Runnable runnable)
+ {
+ defaultResponse = new RunResponse(runnable)
+ {
+ @Override
+ public void run()
+ {
+ runnable.run();
+ }
+ };
+ }
+
+ /**
+ * Default responses are called once, with ourTrigger set to the unHandled
+ * response received
+ *
+ * @param runnable
+ */
+ public void setDefaultResponse(RunResponse runnable)
+ {
+ defaultResponse = runnable;
+ }
}