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