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:
-----------------------------

       Proposal: 
Actions:

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:

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:
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.

    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.


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.


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"

So for bindable functions the following information is available for overload selection:
- names of non-binding parameters
- type of binding parameter
- type family of non-binding parameters

For non-bindable functions the following information is available for overload selection:
- 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.

  was:
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.
> 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.
> 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"
> So for bindable functions the following information is available for overload selection:
> - names of non-binding parameters
> - type of binding parameter
> - type family of non-binding parameters
> For non-bindable functions the following information is available for overload selection:
> - 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.

-- 
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]