private void updateEtagResponseHeader(PutMergePatchUriInfo uriInfo, IDataProviderResponse dataProviderResponse, String contentType) { try { ODataResponse writeEntry = EntityProvider.writeEntry(contentType, uriInfo.getTargetEntitySet(), dataProviderResponse.getResultEntity(), getEntityProviderWriteProperties((UriInfo) uriInfo, dataProviderResponse)); if(writeEntry.getHeader(ETAG)!=null){ etagHeader = writeEntry.getHeader(ETAG); String etagKey = getEtagKey((UriInfo)uriInfo, null); EtagUtils.setEtagMap(etagKey, etagHeader); } } catch (ODataException e) { etagHeader=null; } }
EntityProviderWriteProperties entityProviderWriteProperties = getEntityProviderWriteProperties((UriInfo) uriInfo, dataProviderResponse); ODataResponse writeEntry = EntityProvider.writeEntry(contentType, uriInfo.getTargetEntitySet(), dataProviderResponse.getResultEntity(), entityProviderWriteProperties);
private <T> ODataResponse writeEntry(final EdmEntitySet entitySet, final ExpandSelectTreeNode expandSelectTree, final T data, final String contentType) throws ODataException, EntityProviderException { final EdmEntityType entityType = entitySet.getEntityType(); final Map<String, Object> values = getStructuralTypeValueMap(data, entityType); ODataContext context = getContext(); EntityProviderWriteProperties writeProperties = EntityProviderWriteProperties .serviceRoot(context.getPathInfo().getServiceRoot()) .expandSelectTree(expandSelectTree) .callbacks(getCallbacks(data, entityType)) .build(); final int timingHandle = context.startRuntimeMeasurement("EntityProvider", "writeEntry"); final ODataResponse response = EntityProvider.writeEntry(contentType, entitySet, values, writeProperties); context.stopRuntimeMeasurement(timingHandle); return response; }
private <T> ODataResponse writeEntry(final EdmEntitySet entitySet, final ExpandSelectTreeNode expandSelectTree, final T data, final String contentType) throws ODataException, EntityProviderException { final EdmEntityType entityType = entitySet.getEntityType(); final Map<String, Object> values = getStructuralTypeValueMap(data, entityType); ODataContext context = getContext(); EntityProviderWriteProperties writeProperties = EntityProviderWriteProperties .serviceRoot(context.getPathInfo().getServiceRoot()) .expandSelectTree(expandSelectTree) .callbacks(getCallbacks(data, entityType)) .build(); final int timingHandle = context.startRuntimeMeasurement("EntityProvider", "writeEntry"); final ODataResponse response = EntityProvider.writeEntry(contentType, entitySet, values, writeProperties); context.stopRuntimeMeasurement(timingHandle); return response; }
@SuppressWarnings("unchecked") final Map<String, Object> objectMap = (Map<String, Object>) content; response = EntityProvider.writeEntry(responseContentType, targetEntitySet, objectMap, properties); break;
private ODataResponse getCreateEntityMediaResponse(PostUriInfo uriInfo, String contentType, IDataProviderResponse dataProviderResponse) throws EntityProviderException, ODataException { ODataEntityProviderPropertiesBuilder providerPropertiesBuilder = EntityProviderWriteProperties .serviceRoot(getContext().getPathInfo().getServiceRoot()); initializeConfiguration(); if(isValidation==false) providerPropertiesBuilder.validatingFacets(false); ODataResponseBuilder responseBuilder = ODataResponse.fromResponse(EntityProvider.writeEntry(contentType, uriInfo.getTargetEntitySet(), dataProviderResponse.getResultEntity(), providerPropertiesBuilder.build())); responseBuilder.status(HttpStatusCodes.CREATED); setHeaders(responseBuilder, dataProviderResponse, contentType); return responseBuilder.build(); }
private <T> ODataResponse writeEntry(final EdmEntitySet entitySet, final ExpandSelectTreeNode expandSelectTree, final T data, final String contentType) throws ODataException, EntityProviderException { final EdmEntityType entityType = entitySet.getEntityType(); final Map<String, Object> values = getStructuralTypeValueMap(data, entityType); ODataContext context = getContext(); EntityProviderWriteProperties writeProperties = EntityProviderWriteProperties .serviceRoot(context.getPathInfo().getServiceRoot()) .expandSelectTree(expandSelectTree) .callbacks(getCallbacks(data, entityType)) .build(); final int timingHandle = context.startRuntimeMeasurement("EntityProvider", "writeEntry"); final ODataResponse response = EntityProvider.writeEntry(contentType, entitySet, values, writeProperties); context.stopRuntimeMeasurement(timingHandle); return response; }
@SuppressWarnings("unchecked") final Map<String, Object> objectMap = (Map<String, Object>) content; response = EntityProvider.writeEntry(responseContentType, targetEntitySet, objectMap, properties); break;
EntityProvider.writeEntry(contentType, resultsView.getTargetEntitySet(), edmPropertyValueMap, feedProperties); } else { EdmProperty property = ((UriInfoImpl) resultsView).getPropertyPath().get(0);
feedProperties = getEntityProviderProperties(oDataJPAContext, resultsView); odataResponse = EntityProvider.writeEntry(contentType, resultsView.getTargetEntitySet(), edmPropertyValueMap, feedProperties);
EntityProvider.writeEntry(contentType, uriInfo.getTargetEntitySet(), edmPropertyValueMap, feedProperties); } else { EdmProperty property = ((UriInfoImpl) uriInfo).getPropertyPath().get(0);
@Override public ODataResponse build(final PostUriInfo uriInfo, final Object createdObject, final String contentType) throws ODataJPARuntimeException, ODataNotFoundException { if (createdObject == null) { throw new ODataNotFoundException(ODataNotFoundException.ENTITY); } EdmEntityType edmEntityType = null; ODataResponse odataResponse = null; try { edmEntityType = uriInfo.getTargetEntitySet().getEntityType(); Map<String, Object> edmPropertyValueMap = null; JPAEntityParser jpaResultParser = new JPAEntityParser(); edmPropertyValueMap = jpaResultParser.parse2EdmPropertyValueMap(createdObject, edmEntityType); EntityProviderWriteProperties feedProperties = null; try { feedProperties = getEntityProviderPropertiesforPost(oDataJPAContext); } catch (ODataException e) { throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e); } odataResponse = EntityProvider.writeEntry(contentType, uriInfo.getTargetEntitySet(), edmPropertyValueMap, feedProperties); odataResponse = ODataResponse.fromResponse(odataResponse).status(HttpStatusCodes.CREATED).build(); } catch (EntityProviderException e) { throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.GENERAL.addContent(e.getMessage()), e); } catch (EdmException e) { throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.GENERAL.addContent(e.getMessage()), e); } return odataResponse; }
private ODataResponse getCreateEntityResponse(PostUriInfo uriInfo, ODataEntry values, String contentType, ODataEntityProviderPropertiesBuilder providerPropertiesBuilder, IDataProviderResponse dataProviderResponse, ODataContext context) throws EntityProviderException, ODataException { // check deep insert - bep probably delivers data only flat - // therefore register callbacks and deep serialization // only if response contains deep data. compatibility reasons. // ideally bep delivers deep data. if (values.containsInlineEntry() && hasInlinedData(values.getExpandSelectTree(), dataProviderResponse)) { providerPropertiesBuilder.expandSelectTree(values.getExpandSelectTree()); // register callbacks for inline serialization providerPropertiesBuilder.callbacks(ExpandWriteCallback.getCallbacks(context.getPathInfo() .getServiceRoot(), values.getExpandSelectTree(), dataProviderResponse.getInlineInfo(), false)); } initializeConfiguration(); if(isValidation==false) providerPropertiesBuilder.validatingFacets(false); providerPropertiesBuilder.isDataBasedPropertySerialization(true); ODataResponseBuilder responseBuilder = ODataResponse.fromResponse(EntityProvider.writeEntry(contentType, uriInfo.getTargetEntitySet(), dataProviderResponse.getResultEntity(), providerPropertiesBuilder.build())); responseBuilder.status(HttpStatusCodes.CREATED); responseBuilder.contentHeader(contentType); Map<String, Object> sapStatMap = null; setSapStatistics(context, sapStatMap, null); setHeaders(responseBuilder, dataProviderResponse, contentType); return responseBuilder.build(); }