Hi Francesco,

the changes you have made look fine to me. So you can go ahead and merge :-)

Best Regards,
Christian

-----Original Message-----
From: Francesco Chicchiriccò [mailto:ilgro...@apache.org] 
Sent: Samstag, 22. März 2014 16:21
To: dev@olingo.incubator.apache.org
Subject: Re: Time primitive types for V4

On 22/03/2014 14:15, Francesco Chicchiriccò wrote:
> Hi,
> I have opened OLINGO-214 for this, and attached a patch there: please 
> take a look and let me know if it is fine, so that I will commit it.
>
> FYI, I have also made some enhancements to V3 EdmDateTime - you can 
> take a look at the version at https://paste.apache.org/hRR3

As commented in OLINGO-214, I removed that patch that got quickly 
obsolete: please take a look at mentioned classes in the olingo200 
branch for reference.

Regards.

> On 22/03/2014 12:00, Francesco Chicchiriccò wrote:
>> Hi all,
>> I am almost done with OLINGO-65 and all client code is now using 
>> Olingo's EdmType hierarchy, including EdmPrimitiveType children.
>>
>> I am currently experiencing some troubles because EdmTimeOfDay / 
>> EdmDateTimeOffset are not working as I would expect.
>>
>> In the OData 4.0 ABNF grammar you can find that
>>
>> dateTimeOffsetValue = year "-" month "-" day "T" hour ":" minute [ 
>> ":" second [ "." fractionalSeconds ] ] ( "Z" / sign hour ":" minute )
>> timeOfDayValue = hour ":" minute [ ":" second [ "." fractionalSeconds 
>> ] ]
>> fractionalSeconds = 1*12DIGIT
>>
>> This barely refers to EdmTimeOfDay / EdmDateTimeOffset literals and 
>> states that you can have up to 12 fractional seconds digits, right?
>> But EdmTimeOfDay [2] and EdmDateTimeOffset [3] are only able to deal 
>> with 3 fractional seconds digit - mostly because both internally use 
>> Calendar as concrete implementation, and its precision arrives to 
>> milliseconds at most.
>>
>> As part of OLINGO-65 I have developed EdmDateTime for V3 (which you 
>> can find at [4] since I haven't pushed yet); as you can see, it works 
>> differently: instead of relying upon regexp, it uses SimpleDateFormat 
>> and supports both Calendar and java.sql.Timestamp - which allows up 
>> to nanoseconds.
>>
>> What do you think? Shall I try to extends [2] and [3] to make them 
>> able to work with up to 12 fractional second digits, as EdmDateTime 
>> is doing? Even leaving the regexp mechanism there, in fact, I would 
>> need to use java.sql.Timestamp as internal representation.
>>
>> Moreover, [5] states, about "Precision" facet, that
>>
>>> For a temporal property the value of this attribute specifies the 
>>> number of decimal places allowed in the seconds portion of the 
>>> property's value; it MUST be a non-negative integer between zero and 
>>> twelve. If no value is specified, the temporal property has a 
>>> precision of zero.
>>
>> However, [3] do take the precision parameter into account (while [2] 
>> does).
>>
>> Shall we fix this as well?
>>
>> Regards.
>>
>> [1] 
>> http://docs.oasis-open.org/odata/odata/v4.0/os/abnf/odata-abnf-construction-rules.txt
>> [2] 
>> https://git-wip-us.apache.org/repos/asf?p=incubator-olingo-odata4.git;a=blob;f=lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmTimeOfDay.java;
>> [3] 
>> https://git-wip-us.apache.org/repos/asf?p=incubator-olingo-odata4.git;a=blob;f=lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDateTimeOffset.java;
>> [4] https://paste.apache.org/jilL
>> [5] 
>> http://docs.oasis-open.org/odata/odata/v4.0/os/part3-csdl/odata-v4.0-os-part3-csdl.html#_Attribute_Precision_1

-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Involved at The Apache Software Foundation:
member, Syncope PMC chair, Cocoon PMC, Olingo PMC
http://people.apache.org/~ilgrosso/

Reply via email to