in odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ODataRequestHandler.java [224:298]
private static void validateUriMethod(final ODataHttpMethod method, final UriInfoImpl uriInfo) throws ODataException {
switch (uriInfo.getUriType()) {
case URI0:
case URI8:
case URI15:
case URI16:
case URI50A:
case URI50B:
if (method != ODataHttpMethod.GET) {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
break;
case URI1:
case URI6B:
case URI7B:
if (method != ODataHttpMethod.GET && method != ODataHttpMethod.POST) {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
break;
case URI2:
case URI6A:
case URI7A:
if (method != ODataHttpMethod.GET && method != ODataHttpMethod.PUT && method != ODataHttpMethod.DELETE
&& method != ODataHttpMethod.PATCH && method != ODataHttpMethod.MERGE) {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
break;
case URI3:
if (method != ODataHttpMethod.GET && method != ODataHttpMethod.PUT && method != ODataHttpMethod.PATCH
&& method != ODataHttpMethod.MERGE) {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
break;
case URI4:
case URI5:
if (method != ODataHttpMethod.GET && method != ODataHttpMethod.PUT && method != ODataHttpMethod.DELETE
&& method != ODataHttpMethod.PATCH && method != ODataHttpMethod.MERGE) {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
} else if (method == ODataHttpMethod.DELETE && !uriInfo.isValue()) {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
break;
case URI9:
if (method != ODataHttpMethod.POST) {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
}
break;
case URI10:
case URI10a:
case URI11:
case URI12:
case URI13:
case URI14:
break;
case URI17:
if (method != ODataHttpMethod.GET && method != ODataHttpMethod.PUT && method != ODataHttpMethod.DELETE) {
throw new ODataMethodNotAllowedException(ODataMethodNotAllowedException.DISPATCH);
} else {
if (uriInfo.getFormat() != null) {
throw new ODataBadRequestException(ODataBadRequestException.INVALID_SYNTAX);
}
}
break;
default:
throw new ODataRuntimeException("Unknown or not implemented URI type: " + uriInfo.getUriType());
}
}