@Override public IDataProviderResponse readEntityMedia(GetMediaResourceUriInfo uriInfo, ODataContext context) throws ODataException { IDataProvider dataProvider = null; String targetEntitySet = uriInfo.getTargetEntitySet().getEntityType().getNamespace() + "." + uriInfo.getTargetEntitySet().getName(); dataProvider = getDataProvider(targetEntitySet); if (dataProvider != null) { return dataProvider.readEntityMedia(uriInfo, context); } else return null; }
String entitySetName = uriInfo.getTargetEntitySet().getName(); try{ GetEntityUriInfo uInfo = (GetEntityUriInfo) uriInfo;
@Override public ODataResponse readEntityMedia(final GetMediaResourceUriInfo uriInfo, final String contentType) throws ODataException { final Object data = retrieveData( uriInfo.getStartEntitySet(), uriInfo.getKeyPredicates(), uriInfo.getFunctionImport(), mapFunctionParameters(uriInfo.getFunctionImportParameters()), uriInfo.getNavigationSegments()); if (!appliesFilter(data, uriInfo.getFilter())) { throw new ODataNotFoundException(ODataNotFoundException.ENTITY); } final EdmEntitySet entitySet = uriInfo.getTargetEntitySet(); final BinaryData binaryData = dataSource.readBinaryData(entitySet, data); if (binaryData == null) { throw new ODataNotFoundException(ODataNotFoundException.ENTITY); } final String mimeType = binaryData.getMimeType() == null ? HttpContentType.APPLICATION_OCTET_STREAM : binaryData.getMimeType(); return ODataResponse.fromResponse(EntityProvider.writeBinary(mimeType, binaryData.getData())).eTag( constructETag(entitySet, data)).build(); }
@Override public ODataResponse readEntityMedia(final GetMediaResourceUriInfo uriInfo, final String contentType) throws ODataException { final Object data = retrieveData( uriInfo.getStartEntitySet(), uriInfo.getKeyPredicates(), uriInfo.getFunctionImport(), mapFunctionParameters(uriInfo.getFunctionImportParameters()), uriInfo.getNavigationSegments()); if (!appliesFilter(data, uriInfo.getFilter())) { throw new ODataNotFoundException(ODataNotFoundException.ENTITY); } final EdmEntitySet entitySet = uriInfo.getTargetEntitySet(); final BinaryData binaryData = dataSource.readBinaryData(entitySet, data); if (binaryData == null) { throw new ODataNotFoundException(ODataNotFoundException.ENTITY); } final String mimeType = binaryData.getMimeType() == null ? HttpContentType.APPLICATION_OCTET_STREAM : binaryData.getMimeType(); return ODataResponse.fromResponse(EntityProvider.writeBinary(mimeType, binaryData.getData())).eTag( constructETag(entitySet, data)).build(); }
@Override public ODataResponse readEntityMedia(final GetMediaResourceUriInfo uriInfo, final String contentType) throws ODataException { final Object data = retrieveData( uriInfo.getStartEntitySet(), uriInfo.getKeyPredicates(), uriInfo.getFunctionImport(), mapFunctionParameters(uriInfo.getFunctionImportParameters()), uriInfo.getNavigationSegments()); if (!appliesFilter(data, uriInfo.getFilter())) { throw new ODataNotFoundException(ODataNotFoundException.ENTITY); } final EdmEntitySet entitySet = uriInfo.getTargetEntitySet(); final BinaryData binaryData = dataSource.readBinaryData(entitySet, data); if (binaryData == null) { throw new ODataNotFoundException(ODataNotFoundException.ENTITY); } final String mimeType = binaryData.getMimeType() == null ? HttpContentType.APPLICATION_OCTET_STREAM : binaryData.getMimeType(); return ODataResponse.fromResponse(EntityProvider.writeBinary(mimeType, binaryData.getData())).eTag( constructETag(entitySet, data)).build(); }