/** * @param sourceEntityType * @param targetEntityType * @param navProperty */ private void validateReferentialConstraint(EdmEntityType sourceEntityType, EdmEntityType targetEntityType, EdmNavigationProperty navProperty) { if (!navProperty.getReferentialConstraints().isEmpty()) { String propertyName = navProperty.getReferentialConstraints().get(0).getPropertyName(); if (sourceEntityType.getProperty(propertyName) == null) { throw new RuntimeException("Property name "+ propertyName + " not part of the source entity."); } String referencedPropertyName = navProperty.getReferentialConstraints().get(0).getReferencedPropertyName(); if (targetEntityType.getProperty(referencedPropertyName) == null) { throw new RuntimeException("Property name " + referencedPropertyName + " not part of the target entity."); } } }
/** * @param sourceEntityType * @param targetEntityType * @param navProperty */ private void validateReferentialConstraint(EdmEntityType sourceEntityType, EdmEntityType targetEntityType, EdmNavigationProperty navProperty) { if (!navProperty.getReferentialConstraints().isEmpty()) { String propertyName = navProperty.getReferentialConstraints().get(0).getPropertyName(); if (sourceEntityType.getProperty(propertyName) == null) { throw new RuntimeException("Property name "+ propertyName + " not part of the source entity."); } String referencedPropertyName = navProperty.getReferentialConstraints().get(0).getReferencedPropertyName(); if (targetEntityType.getProperty(referencedPropertyName) == null) { throw new RuntimeException("Property name " + referencedPropertyName + " not part of the target entity."); } } }
if (navigationProperty.getReferentialConstraints() != null) { for (EdmReferentialConstraint constraint : navigationProperty.getReferentialConstraints()) { writer.writeStartElement("ReferentialConstraint"); writer.writeAttribute(XML_PROPERTY, constraint.getPropertyName());
if (navigationProperty.getReferentialConstraints() != null) { for (EdmReferentialConstraint constraint : navigationProperty.getReferentialConstraints()) { writer.writeStartElement("ReferentialConstraint"); writer.writeAttribute(XML_PROPERTY, constraint.getPropertyName());
if (navigationProperty.getReferentialConstraints() != null) { for (EdmReferentialConstraint constraint : navigationProperty.getReferentialConstraints()) { json.writeObjectFieldStart(REFERENTIAL_CONSTRAINT); json.writeStringField(constraint.getPropertyName(), constraint.getReferencedPropertyName());
if (navigationProperty.getReferentialConstraints() != null) { for (EdmReferentialConstraint constraint : navigationProperty.getReferentialConstraints()) { json.writeObjectFieldStart(REFERENTIAL_CONSTRAINT); json.writeStringField(constraint.getPropertyName(), constraint.getReferencedPropertyName());
public static UriInfoDraftHelperV4 getCreateUriInfoForDraftsOneToOneUsingParent(EdmNavigationProperty navPropParent,Entity parentDraftsEntry,EdmEntityContainer entityContainer) throws ODataApplicationException { Entity childPayload=new Entity(); List<EdmReferentialConstraint> refConstraints = null ; refConstraints = navPropParent.getReferentialConstraints(); if( refConstraints == null || refConstraints.isEmpty() ){ throw new ODataApplicationException ("Unable to create with navigation because the corresponding referential constraint is missing.", HttpStatusCode.INTERNAL_SERVER_ERROR .getStatusCode(),Locale.ENGLISH,"Unable to create with navigation because the corresponding referential constraint is missing"); } refConstraints.forEach(refConstraint->{ // Map of <ChildKey , ParentKey> childPayload.addProperty(new Property(null, refConstraint.getReferencedPropertyName(), ValueType.PRIMITIVE, parentDraftsEntry.getProperty(refConstraint.getPropertyName()).getValue())); }); DeserializerResult deserializerResult=DeserializerResultImpl.with().entity(childPayload).build(); EdmEntitySet entSet=entityContainer.getEntitySet(navPropParent.getType().getName()); UriResourceEntitySet entitySetForCreate = new UriResourceEntitySetImpl(entSet); UriInfo uriInfoForCreate = new UriInfoImpl().addResourcePart(entitySetForCreate); UriInfoDraftHelperV4 _uriT=new UriInfoDraftHelperV4(); _uriT.setUriInfo(uriInfoForCreate); _uriT.setDeserializerResult(deserializerResult); _uriT.setUriFunction(UriFunction.CREATE); return _uriT; }