[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [OASIS Issue Tracker] Updated: (ODATA-365) Rename edm:AssertType to edm:Cast and clarify behavior of edm:Cast and cast()
[ http://tools.oasis-open.org/issues/browse/ODATA-365?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ralf Handl updated ODATA-365:
-----------------------------
Proposal:
Rename edm:AssertType to edm:Cast
Define cast rules:
- cast primitive to string by using the literal representation used in payloads, and WKT for Geo types, fail if MaxLength is not sufficient
- cast numeric primitives to each other with appropriate rounding, fail if integer part doesn't fit into target type
- cast datetimeoffset, duration, or timeofday values to same type independent of precision
- cast entities and complex type instances to derived type, fail if derived type adds non-nullable properties without default value
- cast entities and complex type instances into arbitrary entity type or complex type by assigning values of identically named properties and casting them recursively, fail if non-nullable properties without default value remain without value
- cast collections entry by entry
If the cast fails, the result of the cast expression is null.
Make edm:Cast optional for primitive values (first three rules).
Provide a more informative example, see description
The same rules apply to the cast() function in URL expressions.
To increase consistency the edm:IsType expression could be renamed to edm:IsOf as it resembles the isof() function in URL expressions.
was:
Rename edm:AssertType to edm:Cast
Define cast rules:
- cast primitive to string by using the literal representation used in payloads, and WKT for Geo types, fail if MaxLength is not sufficient
- cast numeric primitives to each other with appropriate rounding, fail if integer part doesn't fit into target type
- cast datetimeoffset, duration, or timeofday values to same type independent of precision
- cast entities and complex type instances to derived type, fail if derived type adds non-nullable properties without default value
- cast entities and complex type instances into arbitrary entity type or complex type by assigning values of identically named properties and casting them recursively, fail if non-nullable properties without default value remain without value
- cast collections entry by entry
If the cast fails, the result of the cast expression is null.
Make edm:Cast optional for primitive values (first three rules).
Provide a more informative example, see description
The same rules apply to the cast() function in URL expressions.
Optional: to increase consistency the edm:IsType expression could be renamed to edm:IsOf as it resembles the isof() function in URL expressions.
> Rename edm:AssertType to edm:Cast and clarify behavior of edm:Cast and cast()
> -----------------------------------------------------------------------------
>
> Key: ODATA-365
> URL: http://tools.oasis-open.org/issues/browse/ODATA-365
> Project: OASIS Open Data Protocol (OData) TC
> Issue Type: Improvement
> Components: OData Protocol
> Affects Versions: V4.0_CSD01
> Environment: [Proposed]
> Reporter: Martin Zurmuehl
> Fix For: V4.0_CSD02
>
>
> In most programming languages, an assertion is a predicate (a true-false statement) placed in a program to indicate that the developer *thinks* that the predicate is always true at that place. If the assertion is false, an assertion failure results, which typically causes execution to abort.
> In contrast the dynamic expression edm:AssertType behaves different: It casts the value of the child expression to the specified type. So the name edm:Cast would express this behaviour better. We must define the behaviour if the cast fails: I propose to return the NULL value as result of dynamic expression.
> The third proposal is to provide a more informative example in the specification, e.g.
> <Annotation Term="org.example.display.Threshold">
> <Cast Type="Edm.Decimal">
> <Path>Average</Path>
> </Cast>
> </Annotation>
> assume Average is of type edm:String an the Term is of type edm:PrimitiveType
--
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]