OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

odata message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] Updated: (ODATA-449) Clarify restrictions for action/function overloads


     [ http://tools.oasis-open.org/issues/browse/ODATA-449?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ralf Handl updated ODATA-449:
-----------------------------

        Summary: Clarify restrictions for action/function overloads  (was: Remove IsBindable attribute from edm:Function)
       Proposal: 
Actions
- non-bindable actions cannot have overloads because the URL just contains the action name, all parameters are in the POST body
- bindable actions can have overloads based on the binding parameter type because the binding parameter is specified in the URL

This is captured in the current spec text, but it is worth calling out that
- bindable actions can only be called via a path prefix
- non-bindable actions can only be called via an ActionImport
- only bindable actions whose first parameter is (a collection of) an entity type can have an EntitySetPath


Functions
- the first parameter for bindable functions can be specified as a path prefix, not specifying the parameter name
- other parameters are specified with name and value in the URL
- numeric literal values don't differ within the type families "Integer" and "Float"

For bindable functions we can select the overload based on
- names of non-binding parameters
- type of binding parameter
- type family of non-binding parameters

For non-bindable functions we can select the overload based on
- names of  all parameters
- type family of all parameters

Type families are
- Integer: Edm.SByte, Edm.Byte, Edm.Int16, Edm.Int32, Edm.Int64, Edm.Decimal with Scale equal to zero
- Float: Edm.Single, Edm.Double, Edm.Decimal with Scale not equal to zero.

For non-bindable functions the combination of the function name and the set of (parameter name, parameter family) pairs MUST identify a particular function overload. 

All non-bindable overloads MUST have the same return type.

For bindable functions the combination of the function name, the binding parameter type, and the set of (parameter name, parameter family) pairs for non-binding parameters MUST identify a particular function overload. 

All bindable overloads with a given binding parameter type MUST have the same return type.

  was:
Functions don't have an IsBindable attribute. Functions with at least one parameter can always be called by prepending a path that is type-compatible with the first function parameter.

Actions still need the IsBindable attribute to allow overloads based on the binding parameter.

Bindable actions can only be called via a path prefix.

Non-bindable actions can only be called via an ActionImport.

Only bindable actions whose first parameter is an entity type can have an EntitySetPath

    Description: 
The goal for action and function overload resolution is that the overload can be identified by inspecting the URL only.

This goal leads to restrictions on which overloads can be defined.

> Clarify restrictions for action/function overloads
> --------------------------------------------------
>
>                 Key: ODATA-449
>                 URL: http://tools.oasis-open.org/issues/browse/ODATA-449
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: Improvement
>          Components: OData ABNF Construction Rules, OData ATOM Format , OData CSDL, OData JSON Format, OData Protocol , OData URL Conventions 
>    Affects Versions: V4.0_CSD01
>         Environment: [Proposed]
>            Reporter: Ralf Handl
>             Fix For: V4.0_CSD02
>
>
> The goal for action and function overload resolution is that the overload can be identified by inspecting the URL only.
> This goal leads to restrictions on which overloads can be defined.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://tools.oasis-open.org/issues/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]