@SuppressWarnings("rawtypes") @Override public Answer execute(final Command command, final ServerResource serverResource) { final Class<? extends ServerResource> resourceClass = serverResource.getClass(); final Hashtable<Class<? extends Command>, CommandWrapper> resourceCommands = retrieveResource(command, resourceClass); CommandWrapper<Command, Answer, ServerResource> commandWrapper = retrieveCommands(command.getClass(), resourceCommands); while (commandWrapper == null) { //Could not find the command in the given resource, will traverse the family tree. commandWrapper = retryWhenAllFails(command, resourceClass, resourceCommands); } return commandWrapper.execute(command, serverResource); } }
@SuppressWarnings({"rawtypes" }) @Override public Answer execute(final Command command, final ServerResource serverResource) { final Class<? extends ServerResource> resourceClass = serverResource.getClass(); final Hashtable<Class<? extends Command>, CommandWrapper> resourceCommands = retrieveResource(command, resourceClass); CommandWrapper<Command, Answer, ServerResource> commandWrapper = retrieveCommands(command.getClass(), resourceCommands); while (commandWrapper == null) { //Could not find the command in the given resource, will traverse the family tree. commandWrapper = retryWhenAllFails(command, resourceClass, resourceCommands); } return commandWrapper.execute(command, serverResource); } }
@SuppressWarnings({"rawtypes" }) @Override public Answer execute(final Command command, final ServerResource serverResource) { final Class<? extends ServerResource> resourceClass = serverResource.getClass(); final Hashtable<Class<? extends Command>, CommandWrapper> resourceCommands = retrieveResource(command, resourceClass); CommandWrapper<Command, Answer, ServerResource> commandWrapper = retrieveCommands(command.getClass(), resourceCommands); while (commandWrapper == null) { //Could not find the command in the given resource, will traverse the family tree. commandWrapper = retryWhenAllFails(command, resourceClass, resourceCommands); } return commandWrapper.execute(command, serverResource); } }
@SuppressWarnings({"rawtypes" }) @Override public Answer execute(final Command command, final ServerResource serverResource) { final Class<? extends ServerResource> resourceClass = serverResource.getClass(); final Hashtable<Class<? extends Command>, CommandWrapper> resourceCommands = retrieveResource(command, resourceClass); CommandWrapper<Command, Answer, ServerResource> commandWrapper = retrieveCommands(command.getClass(), resourceCommands); while (commandWrapper == null) { //Could not find the command in the given resource, will traverse the family tree. commandWrapper = retryWhenAllFails(command, resourceClass, resourceCommands); } if (commandWrapper == null) { throw new CommandNotSupported("No way to handle " + command.getClass()); } return commandWrapper.execute(command, serverResource); } }