test_class.declarator: iiifController
test_class.modifier: @Autowired
    protected
test_class.original_string: @Autowired
    protected IIIFPresentationApiController iiifController;
test_class.type: IIIFPresentationApiController
test_class.var_name: iiifController
test_class.declarator: mockMvc
test_class.modifier: private
test_class.original_string: private MockMvc mockMvc;
test_class.type: MockMvc
test_class.var_name: mockMvc
test_class.declarator: wac
test_class.modifier: @SuppressWarnings("SpringJavaAutowiringInspection")
    @Autowired
    protected
test_class.original_string: @SuppressWarnings("SpringJavaAutowiringInspection")
    @Autowired
    protected WebApplicationContext wac;
test_class.type: WebApplicationContext
test_class.var_name: wac
test_class.file: iiif-presentation-frontend-impl-springmvc/src/test/java/de/digitalcollections/iiif/presentation/frontend/impl/springmvc/controller/v2/IIIFPresentationApiControllerTest.java
test_class.identifier: IIIFPresentationApiControllerTest
test_case.body: @Test
    public void testGetManifest() throws Exception {
      mockMvc.perform(get("/presentation/" + IIIFPresentationApiController.VERSION + "/abcdef/manifest"))
              .andExpect(status().isOk());
    }
test_case.class_method_signature: IIIFPresentationApiControllerTest.testGetManifest()
test_case.full_signature: @Test public void testGetManifest()
test_case.identifier: testGetManifest
test_case.invocations: andExpect perform get isOk status
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGetManifest()
focal_class.declarator: LOGGER = LoggerFactory.getLogger(IIIFPresentationApiController.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOGGER = LoggerFactory.getLogger(IIIFPresentationApiController.class);
focal_class.type: Logger
focal_class.var_name: LOGGER
focal_class.declarator: VERSION = "v2"
focal_class.modifier: public static final
focal_class.original_string: public static final String VERSION = "v2";
focal_class.type: String
focal_class.var_name: VERSION
focal_class.declarator: presentationService
focal_class.modifier: @Autowired
    private
focal_class.original_string: @Autowired
    private PresentationService presentationService;
focal_class.type: PresentationService
focal_class.var_name: presentationService
focal_class.file: iiif-presentation-frontend-impl-springmvc/src/main/java/de/digitalcollections/iiif/presentation/frontend/impl/springmvc/controller/v2/IIIFPresentationApiController.java
focal_class.identifier: IIIFPresentationApiController
focal_class.class_method_signature: IIIFPresentationApiController.getManifest(@PathVariable String identifier, HttpServletRequest request)
focal_class.full_signature: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"{identifier}/manifest", "{identifier}"}, method = RequestMethod.GET, produces = "application/json") @ResponseBody public Manifest getManifest(@PathVariable String identifier, HttpServletRequest request)
focal_class.identifier: getManifest
focal_class.modifiers: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"{identifier}/manifest", "{identifier}"}, method = RequestMethod.GET, produces = "application/json") @ResponseBody public
focal_class.parameters: (@PathVariable String identifier, HttpServletRequest request)
focal_class.return: Manifest
focal_class.signature: Manifest getManifest(@PathVariable String identifier, HttpServletRequest request)
focal_class.class_method_signature: IIIFPresentationApiController.checkManifest(@PathVariable String identifier, HttpServletResponse response)
focal_class.full_signature: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"{identifier}/manifest", "{identifier}"}, method = RequestMethod.HEAD) @ResponseBody public void checkManifest(@PathVariable String identifier, HttpServletResponse response)
focal_class.identifier: checkManifest
focal_class.modifiers: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"{identifier}/manifest", "{identifier}"}, method = RequestMethod.HEAD) @ResponseBody public
focal_class.parameters: (@PathVariable String identifier, HttpServletResponse response)
focal_class.return: void
focal_class.signature: void checkManifest(@PathVariable String identifier, HttpServletResponse response)
focal_class.class_method_signature: IIIFPresentationApiController.getCanvas(@PathVariable String manifestId, @PathVariable String canvasId, HttpServletRequest req)
focal_class.full_signature: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"{manifestId}/canvas/{canvasId}"}, method = RequestMethod.GET) @ResponseBody public Canvas getCanvas(@PathVariable String manifestId, @PathVariable String canvasId, HttpServletRequest req)
focal_class.identifier: getCanvas
focal_class.modifiers: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"{manifestId}/canvas/{canvasId}"}, method = RequestMethod.GET) @ResponseBody public
focal_class.parameters: (@PathVariable String manifestId, @PathVariable String canvasId, HttpServletRequest req)
focal_class.return: Canvas
focal_class.signature: Canvas getCanvas(@PathVariable String manifestId, @PathVariable String canvasId, HttpServletRequest req)
focal_class.class_method_signature: IIIFPresentationApiController.getRange(@PathVariable String manifestId, @PathVariable String rangeId, HttpServletRequest req)
focal_class.full_signature: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"{manifestId}/range/{rangeId}"}, method = RequestMethod.GET) @ResponseBody public Range getRange(@PathVariable String manifestId, @PathVariable String rangeId, HttpServletRequest req)
focal_class.identifier: getRange
focal_class.modifiers: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"{manifestId}/range/{rangeId}"}, method = RequestMethod.GET) @ResponseBody public
focal_class.parameters: (@PathVariable String manifestId, @PathVariable String rangeId, HttpServletRequest req)
focal_class.return: Range
focal_class.signature: Range getRange(@PathVariable String manifestId, @PathVariable String rangeId, HttpServletRequest req)
focal_class.class_method_signature: IIIFPresentationApiController.getSequence(@PathVariable String manifestId, @PathVariable String sequenceId, HttpServletRequest req)
focal_class.full_signature: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"{manifestId}/sequence/{sequenceId}"}, method = RequestMethod.GET) @ResponseBody public Sequence getSequence(@PathVariable String manifestId, @PathVariable String sequenceId, HttpServletRequest req)
focal_class.identifier: getSequence
focal_class.modifiers: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"{manifestId}/sequence/{sequenceId}"}, method = RequestMethod.GET) @ResponseBody public
focal_class.parameters: (@PathVariable String manifestId, @PathVariable String sequenceId, HttpServletRequest req)
focal_class.return: Sequence
focal_class.signature: Sequence getSequence(@PathVariable String manifestId, @PathVariable String sequenceId, HttpServletRequest req)
focal_class.class_method_signature: IIIFPresentationApiController.getCollection(@PathVariable String name, HttpServletRequest request)
focal_class.full_signature: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"collection/{name}"}, method = {RequestMethod.GET, RequestMethod.HEAD}, produces = "application/json") @ResponseBody public Collection getCollection(@PathVariable String name, HttpServletRequest request)
focal_class.identifier: getCollection
focal_class.modifiers: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"collection/{name}"}, method = {RequestMethod.GET, RequestMethod.HEAD}, produces = "application/json") @ResponseBody public
focal_class.parameters: (@PathVariable String name, HttpServletRequest request)
focal_class.return: Collection
focal_class.signature: Collection getCollection(@PathVariable String name, HttpServletRequest request)
focal_class.class_method_signature: IIIFPresentationApiController.getOriginalUri(HttpServletRequest request)
focal_class.full_signature: private URI getOriginalUri(HttpServletRequest request)
focal_class.identifier: getOriginalUri
focal_class.modifiers: private
focal_class.parameters: (HttpServletRequest request)
focal_class.return: URI
focal_class.signature: URI getOriginalUri(HttpServletRequest request)
focal_method.body: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"})
    @RequestMapping(value = {"{identifier}/manifest", "{identifier}"}, method = RequestMethod.GET,
            produces = "application/json")
    @ResponseBody
    public Manifest getManifest(@PathVariable String identifier, HttpServletRequest request) throws NotFoundException, InvalidDataException {
      HttpLoggingUtilities.addRequestClientInfoToMDC(request);
      MDC.put("manifestId", identifier);
      try {
        Manifest manifest = presentationService.getManifest(identifier);
        LOGGER.info("Serving manifest for {}", identifier);
        return manifest;
      } catch (NotFoundException e) {
        LOGGER.info("Did not find manifest for {}", identifier);
        throw e;
      } catch (InvalidDataException e) {
        LOGGER.error("Bad data for {}", identifier);
        throw e;
      } finally {
        MDC.clear();
      }
    }
focal_method.class_method_signature: IIIFPresentationApiController.getManifest(@PathVariable String identifier, HttpServletRequest request)
focal_method.full_signature: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"{identifier}/manifest", "{identifier}"}, method = RequestMethod.GET, produces = "application/json") @ResponseBody public Manifest getManifest(@PathVariable String identifier, HttpServletRequest request)
focal_method.identifier: getManifest
focal_method.invocations: addRequestClientInfoToMDC put getManifest info info error clear
focal_method.modifiers: @CrossOrigin(allowedHeaders = {"*"}, origins = {"*"}) @RequestMapping(value = {"{identifier}/manifest", "{identifier}"}, method = RequestMethod.GET, produces = "application/json") @ResponseBody public
focal_method.parameters: (@PathVariable String identifier, HttpServletRequest request)
focal_method.return: Manifest
focal_method.signature: Manifest getManifest(@PathVariable String identifier, HttpServletRequest request)