test_class.declarator: dispatch = createWebDispatch()
test_class.modifier: private final
test_class.original_string: private final WebDispatch dispatch = createWebDispatch();
test_class.type: WebDispatch
test_class.var_name: dispatch
test_class.file: services/src/test/java/com/greensopinion/finance/services/web/dispatch/WebDispatchTest.java
test_class.identifier: WebDispatchTest
test_case.body: @Test
  	public void dispatchNotFound() {
  		WebResponse response = dispatch.dispatch(new WebRequest("GET", "/not-present", null));
  		assertNotNull(response);
  		assertEquals(404, response.getResponseCode());
  		assertEquals("{\"errorCode\":\"NotFoundException\",\"message\":\"Not found: GET /not-present\"}",
  				response.getEntity());
  	}
test_case.class_method_signature: WebDispatchTest.dispatchNotFound()
test_case.full_signature: @Test public void dispatchNotFound()
test_case.identifier: dispatchNotFound
test_case.invocations: dispatch assertNotNull assertEquals getResponseCode assertEquals getEntity
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void dispatchNotFound()
focal_class.declarator: webMethodAnnotations = ImmutableList
  			.<Class<? extends Annotation>> of(GET.class, PUT.class, DELETE.class, POST.class)
focal_class.modifier: private static final
focal_class.original_string: private static final List<Class<? extends Annotation>> webMethodAnnotations = ImmutableList
  			.<Class<? extends Annotation>> of(GET.class, PUT.class, DELETE.class, POST.class);
focal_class.type: List<Class<? extends Annotation>>
focal_class.var_name: webMethodAnnotations
focal_class.declarator: invoker
focal_class.modifier: private final
focal_class.original_string: private final Invoker invoker;
focal_class.type: Invoker
focal_class.var_name: invoker
focal_class.declarator: logger
focal_class.modifier: private final
focal_class.original_string: private final Logger logger;
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: pathToHandler
focal_class.modifier: private final
focal_class.original_string: private final Map<WebPath, Handler> pathToHandler;
focal_class.type: Map<WebPath, Handler>
focal_class.var_name: pathToHandler
focal_class.file: services/src/main/java/com/greensopinion/finance/services/web/dispatch/WebDispatch.java
focal_class.identifier: WebDispatch
focal_class.class_method_signature: WebDispatch.WebDispatch(Injector injector, Invoker invoker, Logger logger)
focal_class.full_signature: @Inject public  WebDispatch(Injector injector, Invoker invoker, Logger logger)
focal_class.identifier: WebDispatch
focal_class.modifiers: @Inject public
focal_class.parameters: (Injector injector, Invoker invoker, Logger logger)
focal_class.signature:  WebDispatch(Injector injector, Invoker invoker, Logger logger)
focal_class.class_method_signature: WebDispatch.getLogger()
focal_class.full_signature:  Logger getLogger()
focal_class.identifier: getLogger
focal_class.parameters: ()
focal_class.return: Logger
focal_class.signature: Logger getLogger()
focal_class.class_method_signature: WebDispatch.dispatch(WebRequest request)
focal_class.full_signature: public WebResponse dispatch(WebRequest request)
focal_class.identifier: dispatch
focal_class.modifiers: public
focal_class.parameters: (WebRequest request)
focal_class.return: WebResponse
focal_class.signature: WebResponse dispatch(WebRequest request)
focal_class.class_method_signature: WebDispatch.notFound(WebRequest request)
focal_class.full_signature: private WebResponse notFound(WebRequest request)
focal_class.identifier: notFound
focal_class.modifiers: private
focal_class.parameters: (WebRequest request)
focal_class.return: WebResponse
focal_class.signature: WebResponse notFound(WebRequest request)
focal_class.class_method_signature: WebDispatch.createPathToHandler(Injector injector)
focal_class.full_signature: private Map<WebPath, Handler> createPathToHandler(Injector injector)
focal_class.identifier: createPathToHandler
focal_class.modifiers: private
focal_class.parameters: (Injector injector)
focal_class.return: Map<WebPath, Handler>
focal_class.signature: Map<WebPath, Handler> createPathToHandler(Injector injector)
focal_class.class_method_signature: WebDispatch.introspectWebService(Builder<WebPath, Handler> builder, Binding<?> binding)
focal_class.full_signature: private void introspectWebService(Builder<WebPath, Handler> builder, Binding<?> binding)
focal_class.identifier: introspectWebService
focal_class.modifiers: private
focal_class.parameters: (Builder<WebPath, Handler> builder, Binding<?> binding)
focal_class.return: void
focal_class.signature: void introspectWebService(Builder<WebPath, Handler> builder, Binding<?> binding)
focal_class.class_method_signature: WebDispatch.introspectWebServiceMethod(Builder<WebPath, Handler> builder, String httpMethod, String basePath,
  			Object webService, Method method)
focal_class.full_signature: private void introspectWebServiceMethod(Builder<WebPath, Handler> builder, String httpMethod, String basePath,
  			Object webService, Method method)
focal_class.identifier: introspectWebServiceMethod
focal_class.modifiers: private
focal_class.parameters: (Builder<WebPath, Handler> builder, String httpMethod, String basePath,
  			Object webService, Method method)
focal_class.return: void
focal_class.signature: void introspectWebServiceMethod(Builder<WebPath, Handler> builder, String httpMethod, String basePath,
  			Object webService, Method method)
focal_class.class_method_signature: WebDispatch.isWebService(Key<?> key)
focal_class.full_signature: private boolean isWebService(Key<?> key)
focal_class.identifier: isWebService
focal_class.modifiers: private
focal_class.parameters: (Key<?> key)
focal_class.return: boolean
focal_class.signature: boolean isWebService(Key<?> key)
focal_method.body: public WebResponse dispatch(WebRequest request) {
  		try {
  			for (Entry<WebPath, Handler> handlerEntry : pathToHandler.entrySet()) {
  				WebPath webPath = handlerEntry.getKey();
  				MatchResult match = webPath.match(request.getHttpMethod(), request.getPath());
  				if (match.matches()) {
  					return invoker.invoke(request, match, handlerEntry.getValue());
  				}
  			}
  			return notFound(request);
  		} catch (Exception e) { // fault barrier
  			logger.log(Level.SEVERE, format("Unexpected exception: {0}", e.getMessage()), e);
  			return invoker.toWebResponse(e);
  		}
  	}
focal_method.class_method_signature: WebDispatch.dispatch(WebRequest request)
focal_method.full_signature: public WebResponse dispatch(WebRequest request)
focal_method.identifier: dispatch
focal_method.invocations: entrySet getKey match getHttpMethod getPath matches invoke getValue notFound log format getMessage toWebResponse
focal_method.modifiers: public
focal_method.parameters: (WebRequest request)
focal_method.return: WebResponse
focal_method.signature: WebResponse dispatch(WebRequest request)