Yes. At UriParser facade there is another method for parsing OData path
segments. Drawback is that you have to provide an EDM because of OData
grammar is not context free.

-- Stephan 

On 09.12.13 02:02, "Peter Kelley" <[email protected]> wrote:

>Would this mechanism be suitable for gaining access to a complete URL
>parse
>tree? I'm thinking of implementing a Grails plugin that exposes a Grails
>domain class model via OData and looking at Olingo to provide URL parsing
>which I could then use to provide the implementation using Grails.
>
>
>On Sat, Dec 7, 2013 at 2:32 AM, Sergey Beryozkin
><[email protected]>wrote:
>
>> Hi Stephan
>>
>> On 06/12/13 14:17, Klevenz, Stephan wrote:
>>
>>> Hi Sergey,
>>>
>>> try this:
>>>
>>>      FilterExpression filterExpression = UriParser.parseFilter(null,
>>>null,
>>> "Name eq 'Milk' and Price lt '2.55M'");
>>>
>>> The metadata objects are optional and can be null. If they are set then
>>> the parser will validate the filter.
>>>
>>> And you'll find a tutorial about how to proceed with the expression
>>>here:
>>>
>>>
>>>
>>> http://olingo.incubator.apache.org/doc/tutorials/
>>> Olingo_Tutorial_AdvancedRe
>>> ad_FilterVisitor.html
>>>
>>>
>>> Let us know if you require more information.
>>>
>>>  I think this is exactly what we need, thanks a mill, how did I miss
>>>that
>> link ? :-)
>>
>> Cheers, Sergey
>>
>>
>>  Regards,
>>> Stephan
>>>
>>>
>>>
>>> On 06.12.13 11:28, "Sergey Beryozkin" <[email protected]> wrote:
>>>
>>>  Hi
>>>>
>>>> This may be a user-level question but I haven't been able to find a
>>>> users forum.
>>>>
>>>> I've checked several Olingo titorials, they are very good and detailed
>>>> at explaining how custom extensions and providers can be registered
>>>>with
>>>> Olingo core for Olingo to drive the proper exposition of the data.
>>>>
>>>> What I'd like to understand, and I think this can be of interest to
>>>>many
>>>> users planning to do some work with the help of Olingo, is how to get
>>>> Olingo Parser and other relevant API used directly.
>>>>
>>>> For example, suppose I write a standalone JAX-RS application which has
>>>> no OData support yet:
>>>>
>>>> @GET
>>>> @Path("/books/{id}")
>>>> public Book getBookById(@PathParam("id") String id) {
>>>>      //
>>>> }
>>>>
>>>> Now I'd like to provide the way for users to search for Books. And I'd
>>>> like to try OData, so I add another method to my JAX-RS resource:
>>>>
>>>> @GET
>>>> @Path("/books")
>>>> public List<Book> findBooks(@QueryParam("$filter") String odataQuery)
>>>>{
>>>>
>>>> }
>>>>
>>>> In order to implement this method I'd like to know how I can use
>>>>OLingo
>>>> parser to parse a captured $filter expression and how to introspect
>>>>the
>>>> parser output in order to build an actual DB query, lets say SQL one.
>>>>
>>>> Perhaps a tutorial can be added ?
>>>> For example, lets say a findBooks() Method captures a
>>>>
>>>> "Name eq 'Milk' and Price lt '2.55M'"
>>>>
>>>> expression. How would one go and convert it to SQL with the help of
>>>> Olingo withing the *existing* JAX-RS application ?
>>>>
>>>> Thanks, Sergey
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>
>
>-- 
>
>Peter Kelley

Reply via email to