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(); } }
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 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; }
/** * read entity collection */ @Override public IDataProviderResponse readEntitySet(GetEntitySetUriInfo uriInfo, ODataContext context) throws ODataException { IDataProvider dataProvider = null; String targetEntitySet = uriInfo.getTargetEntitySet().getEntityType().getNamespace()+"."+uriInfo.getTargetEntitySet().getName(); dataProvider = getDataProvider(targetEntitySet); try { if (dataProvider !=null){ return dataProvider.readEntitySet(uriInfo, context); } else return null; } catch (ODataException e) { logger.error("Error in readEntitySet",e); throw new ODataException(e.getMessage(),e); } }
@Override public IDataProviderResponse readEntitySet(GetEntitySetUriInfo uriInfo, ODataContext context) throws ODataException { String entitySetName = uriInfo.getTargetEntitySet().getName(); try{ GetEntityUriInfo uInfo = (GetEntityUriInfo) uriInfo; checkAuthorization(uInfo,READ); } catch(UnauthorizedException ue){ logger.error("Read operation on this entity set not allowed for this user"); return handleAuthorizationException(ue); } List<PathSegment> precedingSegments = context.getPathInfo().getPrecedingSegments(); String serviceName = precedingSegments.get(precedingSegments.size() - 1).getPath(); if(CSNUtil.isDraftEnabledEntity(entitySetName,serviceName)|| CSNUtil.isDraftNodeEntity(entitySetName, serviceName)) { return this.readEntitySetDraftFlow(uriInfo, context); }else{ return this.readEntitySetNonDraftFlow(uriInfo, context); } }
@Override public IDataProviderResponse readExpandedEntitySet(GetEntitySetUriInfo uriInfo, ODataContext context) throws ODataException { GWUriInfo gwUriInfo = new GWUriInfo((UriInfo) uriInfo, uriInfo.getStartEntitySet(), uriInfo.getKeyPredicates(), uriInfo.getNavigationSegments(), uriInfo.getFilter()); gwUriInfo.setExpand(new ArrayList<ArrayList<NavigationPropertySegment>>()); gwUriInfo.setSelect(new ArrayList<SelectItem>()); IDataProviderResponse response = readEntitySet(gwUriInfo, context); ArrayList<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>(); ExpandSelectTreeNode expandSelectTreeNode = UriParser.createExpandSelectTree(uriInfo.getSelect(), uriInfo.getExpand()); Map<String, ExpandSelectTreeNode> links = expandSelectTreeNode.getLinks(); for (Map<String, Object> responseEntity : response.getResultEntities()) { HashMap<String, Object> resultMap = new HashMap<String, Object>(); resultMap.putAll(responseEntity); EdmEntitySet entitySet = uriInfo.getTargetEntitySet(); List<KeyPredicate> keyPredicates = getKeyPredicates(entitySet.getEntityType(), resultMap); GWUriInfo singleUriInfo = new GWUriInfo((UriInfo) uriInfo, uriInfo.getStartEntitySet(), keyPredicates, uriInfo.getNavigationSegments(), uriInfo.getFilter()); for (Entry<String, ExpandSelectTreeNode> expandNodeEntry : links.entrySet()) { Object singleResult = getSingleNavigationPathResult(expandNodeEntry, entitySet, resultMap, singleUriInfo, context); resultMap.put(expandNodeEntry.getKey(), singleResult); } resultList.add(resultMap); } BaseDataProviderResponse baseResponse = new BaseDataProviderResponse(); baseResponse.setResultEntities(resultList); return baseResponse; }
EdmEntityType entityType = uriInfo.getTargetEntitySet().getEntityType(); List<String> edmNameList = entityType.getPropertyNames(); log.debug("Entity's property names: "+edmNameList);
List<EntityType> eTypes = schema.getEntityTypes(); List<ComplexType> eCompTypes = schema.getComplexTypes(); String entityName = uriInfo.getTargetEntitySet().getEntityType().getName(); String[] propNameArr = new String[propNameList.size()]; int nameCounter = 0;
edmEntityType = resultsView.getTargetEntitySet().getEntityType(); List<Map<String, Object>> edmEntityList = null; JPAEntityParser jpaResultParser = new JPAEntityParser(); EntityProvider.writeFeed(contentType, resultsView.getTargetEntitySet(), edmEntityList, feedProperties); odataResponse = ODataResponse.fromResponse(odataResponse).status(HttpStatusCodes.OK).build();
edmEntityType = resultsView.getTargetEntitySet().getEntityType(); List<Map<String, Object>> edmEntityList = null; JPAEntityParser jpaResultParser = new JPAEntityParser(oDataJPAContext, (UriInfo) resultsView); EntityProvider.writeFeed(contentType, resultsView.getTargetEntitySet(), edmEntityList, feedProperties); odataResponse = ODataResponse.fromResponse(odataResponse).status(HttpStatusCodes.OK).build();
JPAEdmMapping mapping = (JPAEdmMapping) uriParserResultView.getTargetEntitySet().getEntityType().getMapping(); JPAQueryBuilder queryBuilder = new JPAQueryBuilder(oDataJPAContext); JPAQueryInfo queryInfo = queryBuilder.build(uriParserResultView);
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; } }
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) && !getType().equals(JPQLContextType.SELECT_COUNT)) { return ODataExpressionParser.parseKeyPropertiesToJPAOrderByExpression(entitySetView.getTargetEntitySet() .getEntityType().getKeyProperties(), getJPAEntityAlias()); } else { return null; } }
@SuppressWarnings({}) private ODataResponse getEntitySetResponse(GetEntitySetUriInfo uriInfo, String contentType, IDataProviderResponse dataProviderResponse) throws ODataException, EntityProviderException { Map<String, Object> sapStatMap = null; EntityProviderWriteProperties writeProperties = getEntityProviderWriteProperties((UriInfo) uriInfo, dataProviderResponse); ODataResponse response = EntityProvider.writeFeed(contentType, uriInfo.getTargetEntitySet(), dataProviderResponse.getResultEntities(), writeProperties); ODataResponseBuilder responseBuilder = ODataResponse.fromResponse(response); responseBuilder.status(HttpStatusCodes.OK); responseBuilder.contentHeader(contentType); setSapStatistics(getContext(), sapStatMap, response); setHeaders(responseBuilder, dataProviderResponse, contentType); setCacheControlHeader(responseBuilder, dataProviderResponse); return responseBuilder.build(); }
final EdmEntitySet entitySet = uriInfo.getTargetEntitySet(); final InlineCount inlineCountType = uriInfo.getInlineCount(); final Integer count = applySystemQueryOptions(
final EdmEntitySet entitySet = uriInfo.getTargetEntitySet(); final InlineCount inlineCountType = uriInfo.getInlineCount(); final Integer count = applySystemQueryOptions(
JPAEdmMapping mapping = (JPAEdmMapping) uriParserResultView.getTargetEntitySet().getEntityType().getMapping(); JPAQueryBuilder queryBuilder = new JPAQueryBuilder(oDataJPAContext); JPAQueryInfo queryInfo = queryBuilder.build(uriParserResultView);
@Override public JPQLContext build() throws ODataJPAModelException, ODataJPARuntimeException { if (entitySetView != null) { try { if (isCountOnly) { setType(JPQLContextType.SELECT_COUNT); } else { setType(JPQLContextType.SELECT); } if (withPaging) { isPagingRequested(withPaging); } EdmEntityType entityType = entitySetView.getTargetEntitySet().getEntityType(); EdmMapping mapping = entityType.getMapping(); if (mapping != null) { setJPAEntityName(mapping.getInternalName()); } else { setJPAEntityName(entityType.getName()); } setJPAEntityAlias(generateJPAEntityAlias()); setOrderByCollection(generateOrderByFileds()); setSelectExpression(generateSelectExpression()); setWhereExpression(generateWhereExpression()); } catch (ODataException e) { throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e); } } return JPQLSelectContext.this; }
@Override public JPQLContext build() throws ODataJPAModelException, ODataJPARuntimeException { if (entitySetView != null) { try { if (isCountOnly) { setType(JPQLContextType.SELECT_COUNT); } else { setType(JPQLContextType.SELECT); } if (withPaging) { isPagingRequested(withPaging); } EdmEntityType entityType = entitySetView.getTargetEntitySet().getEntityType(); EdmMapping mapping = entityType.getMapping(); if (mapping != null) { setJPAEntityName(mapping.getInternalName()); } else { setJPAEntityName(entityType.getName()); } setJPAEntityAlias(generateJPAEntityAlias()); setOrderByCollection(generateOrderByFileds()); setSelectExpression(generateSelectExpression()); setWhereExpression(generateWhereExpression()); } catch (ODataException e) { throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e); } } return JPQLSelectContext.this; }
IDataProvider.class); String entitySetName = uriInfo.getTargetEntitySet().getName(); extensionMethod.prepareFor(holder).readEntitySet(uriInfo, context); Integer inlineCount;