private void validateIsSingleton(HttpMethod method) throws ODataHandlerException { final int lastPathSegmentIndex = uriInfo.getUriResourceParts().size() - 1; final UriResource pathSegment = uriInfo.getUriResourceParts().get(lastPathSegmentIndex); if (pathSegment instanceof UriResourceNavigation && uriInfo.getUriResourceParts().get(lastPathSegmentIndex - 1) instanceof UriResourceEntitySet && ((UriResourceEntitySet) uriInfo.getUriResourceParts().get(lastPathSegmentIndex - 1)).getEntitySet() .getRelatedBindingTarget( pathSegment.getSegmentValue()) instanceof EdmSingleton) { throwMethodNotAllowed(method); } }
private void validateIsSingleton(HttpMethod method) throws ODataHandlerException { final int lastPathSegmentIndex = uriInfo.getUriResourceParts().size() - 1; final UriResource pathSegment = uriInfo.getUriResourceParts().get(lastPathSegmentIndex); if (pathSegment instanceof UriResourceNavigation && uriInfo.getUriResourceParts().get(lastPathSegmentIndex - 1) instanceof UriResourceEntitySet && ((UriResourceEntitySet) uriInfo.getUriResourceParts().get(lastPathSegmentIndex - 1)).getEntitySet() .getRelatedBindingTarget( pathSegment.getSegmentValue()) instanceof EdmSingleton) { throwMethodNotAllowed(method); } }
public static EdmEntitySetInfo determineModifyEntitySetAndKeys(final List<UriResource> resources) { EdmEntitySet targetEdmEntitySet = null; List<UriParameter> targteKeyPredicates = new ArrayList<>(); StringBuilder naviPropertyName = new StringBuilder(); for (final UriResource resourceItem : resources) { if (resourceItem.getKind() == UriResourceKind.entitySet) { targetEdmEntitySet = ((UriResourceEntitySet) resourceItem).getEntitySet(); targteKeyPredicates = ((UriResourceEntitySet) resourceItem).getKeyPredicates(); } if (resourceItem.getKind() == UriResourceKind.complexProperty) { naviPropertyName.append(((UriResourceComplexProperty) resourceItem).getProperty().getName()); naviPropertyName.append(JPAPath.PATH_SEPERATOR); } if (resourceItem.getKind() == UriResourceKind.navigationProperty) { naviPropertyName.append(((UriResourceNavigation) resourceItem).getProperty().getName()); final List<UriParameter> keyPredicates = ((UriResourceNavigation) resourceItem).getKeyPredicates(); if (!keyPredicates.isEmpty()) { targteKeyPredicates = keyPredicates; final EdmBindingTarget edmBindingTarget = targetEdmEntitySet.getRelatedBindingTarget(naviPropertyName .toString()); if (edmBindingTarget instanceof EdmEntitySet) targetEdmEntitySet = (EdmEntitySet) edmBindingTarget; naviPropertyName = new StringBuilder(); } } } return new EdmEntitySetResult(targetEdmEntitySet, targteKeyPredicates, naviPropertyName.toString()); }
public static EdmEntitySetInfo determineTargetEntitySetAndKeys(final List<UriResource> resources) { EdmEntitySet targetEdmEntitySet = null; List<UriParameter> targteKeyPredicates = new ArrayList<>(); StringBuilder naviPropertyName = new StringBuilder(); for (final UriResource resourceItem : resources) { if (resourceItem.getKind() == UriResourceKind.entitySet) { targetEdmEntitySet = ((UriResourceEntitySet) resourceItem).getEntitySet(); targteKeyPredicates = ((UriResourceEntitySet) resourceItem).getKeyPredicates(); } if (resourceItem.getKind() == UriResourceKind.complexProperty) { naviPropertyName.append(((UriResourceComplexProperty) resourceItem).getProperty().getName()); naviPropertyName.append(JPAPath.PATH_SEPERATOR); } if (resourceItem.getKind() == UriResourceKind.navigationProperty) { naviPropertyName.append(((UriResourceNavigation) resourceItem).getProperty().getName()); targteKeyPredicates = ((UriResourceNavigation) resourceItem).getKeyPredicates(); final EdmBindingTarget edmBindingTarget = targetEdmEntitySet.getRelatedBindingTarget(naviPropertyName .toString()); if (edmBindingTarget instanceof EdmEntitySet) targetEdmEntitySet = (EdmEntitySet) edmBindingTarget; naviPropertyName = new StringBuilder(); } } return new EdmEntitySetResult(targetEdmEntitySet, targteKeyPredicates, naviPropertyName.toString()); }
final EdmBindingTarget target = entitySet.getRelatedBindingTarget(uriResourceNavigation.getProperty().getName()); if(target == null) { return entitySet.getEntityContainer().getEntitySet(uriResourceNavigation.getProperty().getType().getName());
HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ROOT); final EdmBindingTarget target = entitySet.getRelatedBindingTarget(uriResourceNavigation.getProperty() .getName()); if (target != null) {
@Override public EdmEntitySet getReturnedEntitySet(final EdmEntitySet bindingParameterEntitySet) { EdmEntitySet returnedEntitySet = null; if (bindingParameterEntitySet != null && operation.getEntitySetPath() != null) { final EdmBindingTarget relatedBindingTarget = bindingParameterEntitySet.getRelatedBindingTarget(operation.getEntitySetPath()); if (relatedBindingTarget == null) { throw new EdmException("Cannot find entity set with path: " + operation.getEntitySetPath()); } if (relatedBindingTarget instanceof EdmEntitySet) { returnedEntitySet = (EdmEntitySet) relatedBindingTarget; } else { throw new EdmException("BindingTarget with name: " + relatedBindingTarget.getName() + " must be an entity set"); } } return returnedEntitySet; }
@Override public EdmEntitySet getReturnedEntitySet(final EdmEntitySet bindingParameterEntitySet) { EdmEntitySet returnedEntitySet = null; if (bindingParameterEntitySet != null && operation.getEntitySetPath() != null) { final EdmBindingTarget relatedBindingTarget = bindingParameterEntitySet.getRelatedBindingTarget(operation.getEntitySetPath()); if (relatedBindingTarget == null) { throw new EdmException("Cannot find entity set with path: " + operation.getEntitySetPath()); } if (relatedBindingTarget instanceof EdmEntitySet) { returnedEntitySet = (EdmEntitySet) relatedBindingTarget; } else { throw new EdmException("BindingTarget with name: " + relatedBindingTarget.getName() + " must be an entity set"); } } return returnedEntitySet; }
for (EdmNavigationPropertyBinding navigationPropertyBinding : navigationPropertyBindings) { String navBindingPath = navigationPropertyBinding.getPath(); EdmBindingTarget edmBindingTarget = entitySet.getRelatedBindingTarget(navBindingPath); EdmEntityType sourceEntityType = edmEntityTypesMap.get(entitySet.getEntityType().getFullQualifiedName());
for (EdmNavigationPropertyBinding navigationPropertyBinding : navigationPropertyBindings) { String navBindingPath = navigationPropertyBinding.getPath(); EdmBindingTarget edmBindingTarget = entitySet.getRelatedBindingTarget(navBindingPath); EdmEntityType sourceEntityType = edmEntityTypesMap.get(entitySet.getEntityType().getFullQualifiedName());