private void setCustomQueryOptions(QueryRequest queryRequest, GetEntitySetUriInfo uriInfo) { if (uriInfo.getCustomQueryOptions() != null) { ((QueryRequestImpl) queryRequest).setCustomQueryOptions(uriInfo.getCustomQueryOptions()); } }
protected String generateOrderByFileds() throws ODataJPARuntimeException, EdmException { if (entitySetView.getOrderBy() != null) { return ODataExpressionParser.parseToJPAOrderByExpression(entitySetView.getOrderBy(), getJPAEntityAlias()); } else if (entitySetView.getTop() != null || entitySetView.getSkip() != null || pagingRequested == true) { return ODataExpressionParser.parseKeyPropertiesToJPAOrderByExpression(entitySetView.getTargetEntitySet() .getEntityType().getKeyProperties(), getJPAEntityAlias()); } else { return null; } }
@Override public ODataResponse existsEntity(final GetEntityCountUriInfo uriInfo, final String contentType) throws ODataException { final Object data = retrieveData( uriInfo.getStartEntitySet(), uriInfo.getKeyPredicates(), uriInfo.getFunctionImport(), mapFunctionParameters(uriInfo.getFunctionImportParameters()), uriInfo.getNavigationSegments()); return ODataResponse.fromResponse(EntityProvider.writeText(appliesFilter(data, uriInfo.getFilter()) ? "1" : "0")) .build(); }
private static Integer getInlineCountForNonFilterQueryLinks(final List<Map<String, Object>> edmEntityList, final GetEntitySetLinksUriInfo resultsView) { // when $skip and/or $top is present with $inlinecount, first get the total count Integer count = null; if (resultsView.getInlineCount() == InlineCount.ALLPAGES) { if (resultsView.getSkip() != null || resultsView.getTop() != null) { count = edmEntityList.size(); // Now update the list if (resultsView.getSkip() != null) { // Index checks to avoid IndexOutOfBoundsException if (resultsView.getSkip() > edmEntityList.size()) { edmEntityList.clear(); return count; } edmEntityList.subList(0, resultsView.getSkip()).clear(); } if (resultsView.getTop() != null && resultsView.getTop() >= 0 && resultsView.getTop() < edmEntityList.size()) { edmEntityList.subList(0, resultsView.getTop()); } } }// Inlinecount of None is handled by default - null return count; }
private String buildToken() { StringBuilder tokenBuilder = new StringBuilder(); if (baseUri != null) { tokenBuilder.append(baseUri); } try { if (resultsView != null) { tokenBuilder.append(resultsView.getTargetEntitySet().getName()); } } catch (EdmException e) { // Nothing } tokenBuilder.append(DELTA_TOKEN_STRING); if (deltaTokenValue != null) { tokenBuilder.append(deltaTokenValue); } return tokenBuilder.toString(); } }
@Override public ODataResponse deleteEntity(final DeleteUriInfo uriInfo, final String contentType) throws ODataException { dataSource.deleteData( uriInfo.getStartEntitySet(), mapKey(uriInfo.getKeyPredicates())); return ODataResponse.newBuilder().build(); }
@Override public IDataProviderResponse readExpandedEntitySet(GetEntitySetUriInfo uriInfo, ODataContext context) throws ODataException { logger.debug("Entering CXSDataProvider >> {readExpandedEntitySet}"); if (uriInfo.getExpand() != null) { expanding = true; } BaseDataProviderResponse response = (BaseDataProviderResponse) super.readExpandedEntitySet(uriInfo, context); logger.debug("Exiting CXSDataProvider >> {readExpandedEntitySet}"); return response; }
@Override public IDataProviderResponse readExpandedEntity(GetEntityUriInfo 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.readExpandedEntity(uriInfo, context); } else return null; }
@Override public IDataProviderResponse readExpandedEntity(GetEntityUriInfo uriInfo, ODataContext context) throws ODataException { logger.debug("Entering CXSDataProvider >> {readExpandedEntity}"); if (uriInfo.getExpand() != null) { expanding = true; } BaseDataProviderResponse response = (BaseDataProviderResponse) super.readExpandedEntity(uriInfo, context); logger.debug("Exiting CXSDataProvider >> {readExpandedEntitySet}"); return response; }
@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; }
private void checkAuthorization(GetEntityUriInfo uriInfo, String operation) throws UnauthorizedException { String entityName = uriInfo.getTargetType().toString(); if(!AuthorizationService.hasEntityAccess(entityName, operation)){ //logger.error(accessDenied); throw new UnauthorizedException(accessDenied); } }
@Override public IDataProviderResponse countEntityLinks(GetEntitySetLinksCountUriInfo 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.countEntityLinks(uriInfo, context); } else return null; }
@Override public <T> Object process(GetEntityUriInfo uriParserResultView) throws ODataJPAModelException, ODataJPARuntimeException { if (uriParserResultView.isNew()) { return processNew((UriInfo) uriParserResultView); } return readEntity(new JPAQueryBuilder(oDataJPAContext).build(uriParserResultView), (UriInfo) uriParserResultView); }
@Override public ODataResponse existsEntity(final GetEntityCountUriInfo uriInfo, final String contentType) throws ODataException { final Object data = retrieveData( uriInfo.getStartEntitySet(), uriInfo.getKeyPredicates(), uriInfo.getFunctionImport(), mapFunctionParameters(uriInfo.getFunctionImportParameters()), uriInfo.getNavigationSegments()); return ODataResponse.fromResponse(EntityProvider.writeText(appliesFilter(data, uriInfo.getFilter()) ? "1" : "0")) .build(); }
private static Integer getInlineCountForNonFilterQueryLinks(final List<Map<String, Object>> edmEntityList, final GetEntitySetLinksUriInfo resultsView) { // when $skip and/or $top is present with $inlinecount, first get the total count Integer count = null; if (resultsView.getInlineCount() == InlineCount.ALLPAGES) { if (resultsView.getSkip() != null || resultsView.getTop() != null) { count = edmEntityList.size(); // Now update the list if (resultsView.getSkip() != null) { // Index checks to avoid IndexOutOfBoundsException if (resultsView.getSkip() > edmEntityList.size()) { edmEntityList.clear(); return count; } edmEntityList.subList(0, resultsView.getSkip()).clear(); } if (resultsView.getTop() != null && resultsView.getTop() >= 0 && resultsView.getTop() < edmEntityList.size()) { edmEntityList.subList(0, resultsView.getTop()); } } }// Inlinecount of None is handled by default - null return count; }
private String buildToken() { StringBuilder tokenBuilder = new StringBuilder(); if (baseUri != null) { tokenBuilder.append(baseUri); } try { if (resultsView != null) { tokenBuilder.append(resultsView.getTargetEntitySet().getName()); } } catch (EdmException e) { // Nothing } tokenBuilder.append(DELTA_TOKEN_STRING); if (deltaTokenValue != null) { tokenBuilder.append(deltaTokenValue); } return tokenBuilder.toString(); } }
@Override public ODataResponse deleteEntity(final DeleteUriInfo uriInfo, final String contentType) throws ODataException { dataSource.deleteData( uriInfo.getStartEntitySet(), mapKey(uriInfo.getKeyPredicates())); return ODataResponse.newBuilder().build(); }
@Override public IDataProviderResponse readExpandedEntitySet(GetEntitySetUriInfo 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.readExpandedEntitySet(uriInfo, context); } else return null; }