switch (uriInfo.getUriType()) {
case URI0:
if (method == ODataHttpMethod.GET) {
return service.getServiceDocumentProcessor().readServiceDocument(uriInfo, contentType);
} else {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI1:
case URI6B:
switch (method) {
case GET:
return service.getEntitySetProcessor().readEntitySet(uriInfo, contentType);
case POST:
return service.getEntitySetProcessor().createEntity(uriInfo, content, requestContentType, contentType);
default:
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI2:
switch (method) {
case GET:
return service.getEntityProcessor().readEntity(uriInfo, contentType);
case PUT:
return service.getEntityProcessor().updateEntity(uriInfo, content, requestContentType, false, contentType);
case PATCH:
case MERGE:
return service.getEntityProcessor().updateEntity(uriInfo, content, requestContentType, true, contentType);
case DELETE:
return service.getEntityProcessor().deleteEntity(uriInfo, contentType);
default:
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI3:
switch (method) {
case GET:
return service.getEntityComplexPropertyProcessor().readEntityComplexProperty(uriInfo, contentType);
case PUT:
return service.getEntityComplexPropertyProcessor().updateEntityComplexProperty(uriInfo, content,
requestContentType, false, contentType);
case PATCH:
case MERGE:
return service.getEntityComplexPropertyProcessor().updateEntityComplexProperty(uriInfo, content,
requestContentType, true, contentType);
default:
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI4:
case URI5:
switch (method) {
case GET:
if (uriInfo.isValue()) {
return service.getEntitySimplePropertyValueProcessor().readEntitySimplePropertyValue(uriInfo, contentType);
} else {
return service.getEntitySimplePropertyProcessor().readEntitySimpleProperty(uriInfo, contentType);
}
case PUT:
case PATCH:
case MERGE:
if (uriInfo.isValue()) {
return service.getEntitySimplePropertyValueProcessor().updateEntitySimplePropertyValue(uriInfo, content,
requestContentType, contentType);
} else {
return service.getEntitySimplePropertyProcessor().updateEntitySimpleProperty(uriInfo, content,
requestContentType, contentType);
}
case DELETE:
if (uriInfo.isValue()) {
return service.getEntitySimplePropertyValueProcessor().deleteEntitySimplePropertyValue(uriInfo, contentType);
} else {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
default:
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI6A:
switch (method) {
case GET:
return service.getEntityProcessor().readEntity(uriInfo, contentType);
case PUT:
case PATCH:
case MERGE:
case DELETE:
throw new ODataBadRequestException(ODataBadRequestException.NOTSUPPORTED);
default:
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI7A:
switch (method) {
case GET:
return service.getEntityLinkProcessor().readEntityLink(uriInfo, contentType);
case PUT:
case PATCH:
case MERGE:
return service.getEntityLinkProcessor().updateEntityLink(uriInfo, content, requestContentType, contentType);
case DELETE:
return service.getEntityLinkProcessor().deleteEntityLink(uriInfo, contentType);
default:
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI7B:
switch (method) {
case GET:
return service.getEntityLinksProcessor().readEntityLinks(uriInfo, contentType);
case POST:
return service.getEntityLinksProcessor().createEntityLink(uriInfo, content, requestContentType, contentType);
default:
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI8:
if (method == ODataHttpMethod.GET) {
return service.getMetadataProcessor().readMetadata(uriInfo, contentType);
} else {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI9:
if (method == ODataHttpMethod.POST) {
BatchHandler handler = new BatchHandlerImpl(serviceFactory, service);
return service.getBatchProcessor().executeBatch(handler, requestContentType, content);
} else {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI10:
case URI11:
case URI12:
case URI13:
return service.getFunctionImportProcessor().executeFunctionImport(uriInfo, contentType);
case URI14:
if (uriInfo.isValue()) {
return service.getFunctionImportValueProcessor().executeFunctionImportValue(uriInfo, contentType);
} else {
return service.getFunctionImportProcessor().executeFunctionImport(uriInfo, contentType);
}
case URI15:
if (method == ODataHttpMethod.GET) {
return service.getEntitySetProcessor().countEntitySet(uriInfo, contentType);
} else {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI16:
if (method == ODataHttpMethod.GET) {
return service.getEntityProcessor().existsEntity(uriInfo, contentType);
} else {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI17:
switch (method) {
case GET:
return service.getEntityMediaProcessor().readEntityMedia(uriInfo, contentType);
case PUT:
return service.getEntityMediaProcessor().updateEntityMedia(uriInfo, content, requestContentType, contentType);
case DELETE:
return service.getEntityMediaProcessor().deleteEntityMedia(uriInfo, contentType);
default:
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI50A:
if (method == ODataHttpMethod.GET) {
return service.getEntityLinkProcessor().existsEntityLink(uriInfo, contentType);
} else {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
case URI50B:
if (method == ODataHttpMethod.GET) {
return service.getEntityLinksProcessor().countEntityLinks(uriInfo, contentType);
} else {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
default:
throw new ODataRuntimeException("Unknown or not implemented URI type: " + uriInfo.getUriType());
}