@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; }
/** * read Entity */ @Override public IDataProviderResponse readEntity(GetEntityUriInfo 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.readEntity(uriInfo, context); } else return null; } catch (ODataException e) { logger.error("Error in readEntity",e); throw new ODataException(e.getMessage(),e); } }
@Override public IDataProviderResponse readEntity(GetEntityUriInfo uriInfo, ODataContext context) throws ODataException { String entitySetName = uriInfo.getTargetEntitySet().getName(); try{ checkAuthorization(uriInfo,READ); } catch(UnauthorizedException ue){ logger.error("Read operation on this entity 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.readEntityDraftFlow(uriInfo, context); }else{ return this.readEntityNonDraftFlow(uriInfo, context); } }
@Override public IDataProviderResponse readExpandedEntity(GetEntityUriInfo 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 = readEntity(gwUriInfo, context); HashMap<String, Object> resultMap = new HashMap<String, Object>(); resultMap.putAll(response.getResultEntity()); ExpandSelectTreeNode expandSelectTreeNode = UriParser.createExpandSelectTree(uriInfo.getSelect(), uriInfo.getExpand()); Map<String, ExpandSelectTreeNode> links = expandSelectTreeNode.getLinks(); EdmEntitySet entitySet = uriInfo.getTargetEntitySet(); for (Entry<String, ExpandSelectTreeNode> expandNodeEntry : links.entrySet()) { Object singleResult = getSingleNavigationPathResult(expandNodeEntry, entitySet, resultMap, (UriInfo) uriInfo, context); resultMap.put(expandNodeEntry.getKey(), singleResult); } BaseDataProviderResponse baseResponse = new BaseDataProviderResponse(); baseResponse.setResultEntity(resultMap); return baseResponse; }
edmEntityType = resultsView.getTargetEntitySet().getEntityType(); Map<String, Object> edmPropertyValueMap = null; edmPropertyValueMap = jpaResultParser.parse2EdmPropertyValueMap(jpaEntity, buildSelectItemList(selectedItems, resultsView .getTargetEntitySet().getEntityType())); } else { edmPropertyValueMap = jpaResultParser.parse2EdmPropertyValueMap(jpaEntity, edmEntityType); feedProperties = getEntityProviderProperties(oDataJPAContext, resultsView); odataResponse = EntityProvider.writeEntry(contentType, resultsView.getTargetEntitySet(), edmPropertyValueMap, feedProperties);
edmEntityType = resultsView.getTargetEntitySet().getEntityType(); Map<String, Object> edmPropertyValueMap = null; edmPropertyValueMap = jpaResultParser.parse2EdmPropertyValueMap(jpaEntity, buildSelectItemList(selectedItems, resultsView .getTargetEntitySet().getEntityType()), edmEntityType); } else { edmPropertyValueMap = jpaResultParser.parse2EdmPropertyValueMap(jpaEntity, edmEntityType); EntityProvider.writeEntry(contentType, resultsView.getTargetEntitySet(), edmPropertyValueMap, feedProperties); } else { EdmProperty property = ((UriInfoImpl) resultsView).getPropertyPath().get(0);
EdmEntitySet entitySet = uriInfo.getStartEntitySet(); if (expanding) { entitySet = uriInfo.getTargetEntitySet(); entitySet = uriInfo.getTargetEntitySet(); ReadRequestImpl readRequest = new ReadRequestImpl(null, entitySet.getName(), entityMetadata, context.getRequestHeaders(), keys, context.getHttpMethod()); if (expanding && (!uriInfo.getStartEntitySet().getName().equals(uriInfo.getTargetEntitySet().getName()))) { ((ReadRequestImpl) readRequest).setSourceEntityName(uriInfo.getStartEntitySet().getName()); try { uriInfo.getTargetEntitySet().getEntityType());
getEntityProviderWriteProperties((UriInfo) uriInfo, dataProviderResponse); ODataResponse writeEntry = EntityProvider.writeEntry(contentType, uriInfo.getTargetEntitySet(), dataProviderResponse.getResultEntity(), entityProviderWriteProperties); etagHeader = writeEntry.getHeader(ETAG);
@Override public JPQLContext build() throws ODataJPAModelException, ODataJPARuntimeException { if (entityView != null) { try { setType(JPQLContextType.SELECT_SINGLE); EdmEntityType entityType = entityView.getTargetEntitySet().getEntityType(); EdmMapping mapping = entityType.getMapping(); if (mapping != null) { setJPAEntityName(mapping.getInternalName()); } else { setJPAEntityName(entityType.getName()); } setJPAEntityAlias(generateJPAEntityAlias()); setKeyPredicates(entityView.getKeyPredicates()); setSelectExpression(generateSelectExpression()); } catch (EdmException e) { throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.GENERAL.addContent(e.getMessage()), e); } } return JPQLSelectSingleContext.this; }
@Override public JPQLContext build() throws ODataJPAModelException, ODataJPARuntimeException { if (entityView != null) { try { setType(JPQLContextType.SELECT_SINGLE); EdmEntityType entityType = entityView.getTargetEntitySet().getEntityType(); EdmMapping mapping = entityType.getMapping(); if (mapping != null) { setJPAEntityName(mapping.getInternalName()); } else { setJPAEntityName(entityType.getName()); } setJPAEntityAlias(generateJPAEntityAlias()); setKeyPredicates(entityView.getKeyPredicates()); setSelectExpression(generateSelectExpression()); } catch (EdmException e) { throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.GENERAL.addContent(e.getMessage()), e); } } return JPQLSelectSingleContext.this; }
private IDataProviderResponse readEntityNonDraftFlow(GetEntityUriInfo uriInfo, ODataContext context) throws ODataException { LocaleUtil.setLocaleForRequest(context); ExtensionHolder holder = null; ExtensionWrappedDataProvider<IDataProvider> extensionMethod = new ExtensionWrappedDataProvider<>(dataProvider, IDataProvider.class); //When triggering parent/child phased exits the child phased exit must be invoked String entitySetName = uriInfo.getTargetEntitySet().getName(); extensionMethod.prepareFor(holder).readEntity(uriInfo, context); //before All call checkAndExecuteBeforeAll(extensionMethod); if (exitsEnabledForRead && !controlTransaction) { dataProvider.startTransaction(); checkAndExecuteInitTransactionExit(extensionMethod); checkAndExecuteBeforeExit(entitySetName, "READ", extensionMethod); } //Fixed for cognitive complexity issue. IDataProviderResponse response = this.executeRead(uriInfo, context, entitySetName, extensionMethod); EntityData entityData = getEntityDataFromDataProvider(response, (UriInfo) uriInfo); extensionMethod.setEntityData(entityData); if (exitsEnabledForRead) { //Fixed for cognitive complexity issue. response = this.executePostRead(uriInfo, entitySetName, response, extensionMethod); } return response; }
@Override public ODataResponse readEntity(final GetEntityUriInfo 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 ExpandSelectTreeNode expandSelectTreeNode = UriParser.createExpandSelectTree(uriInfo.getSelect(), uriInfo.getExpand()); ODataResponse odr = ODataResponse.fromResponse(writeEntry(uriInfo.getTargetEntitySet(), expandSelectTreeNode, data, contentType)) .build(); return odr; }
@Override public ODataResponse readEntity(final GetEntityUriInfo 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 ExpandSelectTreeNode expandSelectTreeNode = UriParser.createExpandSelectTree(uriInfo.getSelect(), uriInfo.getExpand()); ODataResponse odr = ODataResponse.fromResponse(writeEntry(uriInfo.getTargetEntitySet(), expandSelectTreeNode, data, contentType)) .build(); return odr; }
@Override public ODataResponse readEntity(final GetEntityUriInfo 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 ExpandSelectTreeNode expandSelectTreeNode = UriParser.createExpandSelectTree(uriInfo.getSelect(), uriInfo.getExpand()); ODataResponse odr = ODataResponse.fromResponse(writeEntry(uriInfo.getTargetEntitySet(), expandSelectTreeNode, data, contentType)) .build(); return odr; }
IReadEntityParameter readParameter = (IReadEntityParameter) parameter; return getReadRequestFromODataRequest(context, readParameter.getUriInfo(), new EntityMetadataV2(readParameter.getUriInfo().getTargetEntitySet())); case "CREATE_ENTITY": ICreateEntityParameter createParameter = (ICreateEntityParameter) parameter;