@Override public void retrieveData(final ODataRequest request, final ODataResponse response, final ContentType responseFormat) throws ODataException { final UriResource uriResource = uriInfo.getUriResourceParts().get(0); if (uriResource instanceof UriResourceEntitySet) { final EntityCollection result = countEntities(request, response, uriInfo); createSuccessResponce(response, ContentType.TEXT_PLAIN, serializer.serialize(request, result)); } else { throw new ODataJPAProcessorException(ODataJPAProcessorException.MessageKeys.NOT_SUPPORTED_RESOURCE_TYPE, HttpStatusCode.NOT_IMPLEMENTED, uriResource.getKind().toString()); } }
default: throw new UriValidationException("Unsupported uriResource kind: " + lastPathSegment.getKind(), UriValidationException.MessageKeys.UNSUPPORTED_URI_RESOURCE_KIND, lastPathSegment.getKind().toString());
default: throw new UriValidationException("Unsupported uriResource kind: " + lastPathSegment.getKind(), UriValidationException.MessageKeys.UNSUPPORTED_URI_RESOURCE_KIND, lastPathSegment.getKind().toString());
private void checkNavigationPathSupported(final List<UriResource> resourceParts) throws ODataApplicationException { for (final UriResource resourceItem : resourceParts) { if (resourceItem.getKind() != UriResourceKind.complexProperty && resourceItem.getKind() != UriResourceKind.primitiveProperty && resourceItem.getKind() != UriResourceKind.navigationProperty && resourceItem.getKind() != UriResourceKind.entitySet && resourceItem.getKind() != UriResourceKind.value) throw new ODataJPAProcessorException(ODataJPAProcessorException.MessageKeys.NOT_SUPPORTED_RESOURCE_TYPE, HttpStatusCode.NOT_IMPLEMENTED, resourceItem.getKind().toString()); } }
public JPARequestProcessor createProcessor(final EntityManager em, final UriInfo uriInfo, final ContentType responseFormat, Map<String, List<String>> header) throws ODataException { final List<UriResource> resourceParts = uriInfo.getUriResourceParts(); final UriResource lastItem = resourceParts.get(resourceParts.size() - 1); final JPAODataPage page = getPage(header, uriInfo, em); final JPAODataRequestContextAccess requestContext = new JPARequestContext(em, page, serializerFactory .createSerializer(responseFormat, page.getUriInfo())); switch (lastItem.getKind()) { case count: return new JPACountRequestProcessor(odata, sessionContext, requestContext); case function: checkFunctionPathSupported(resourceParts); return new JPAFunctionRequestProcessor(odata, sessionContext, requestContext); case complexProperty: case primitiveProperty: case navigationProperty: case entitySet: case value: checkNavigationPathSupported(resourceParts); return new JPANavigationRequestProcessor(odata, serviceMetadata, sessionContext, requestContext); default: throw new ODataJPAProcessorException(ODataJPAProcessorException.MessageKeys.NOT_SUPPORTED_RESOURCE_TYPE, HttpStatusCode.NOT_IMPLEMENTED, lastItem.getKind().toString()); } }
} else if (segment instanceof UriResourcePartTyped) { ObjectNode node = nodeFactory.objectNode() .put(NODE_TYPE_NAME, segment.getKind().toString()) .put(NAME_NAME, segment.toString()) .put(TYPE_NAME, getType(segment)); } else { segments.add(nodeFactory.objectNode() .put(NODE_TYPE_NAME, segment.getKind().toString()) .put(NAME_NAME, segment.toString()) .putNull(TYPE_NAME));
} else if (segment instanceof UriResourcePartTyped) { ObjectNode node = nodeFactory.objectNode() .put(NODE_TYPE_NAME, segment.getKind().toString()) .put(NAME_NAME, segment.toString()) .put(TYPE_NAME, getType(segment)); } else { segments.add(nodeFactory.objectNode() .put(NODE_TYPE_NAME, segment.getKind().toString()) .put(NAME_NAME, segment.toString()) .putNull(TYPE_NAME));
for (UriResource resource : uriResourceParts) { gen.writeStartObject(); gen.writeStringField("uriResourceKind", resource.getKind().toString()); gen.writeStringField("segment", resource.toString()); if (resource instanceof UriResourcePartTyped) {
for (UriResource resource : uriResourceParts) { gen.writeStartObject(); gen.writeStringField("uriResourceKind", resource.getKind().toString()); gen.writeStringField("segment", resource.toString()); if (resource instanceof UriResourcePartTyped) {
default: throw new ODataJPASerializerException(ODataJPASerializerException.MessageKeys.NOT_SUPPORTED_RESOURCE_TYPE, HttpStatusCode.NOT_IMPLEMENTED, uriResourceKind.toString());