Gary,

Gary Bentley wrote:
Along the lines of:

#foreach( $mud in $mudsOnSpecial where $customer.hasPurchased($mud) order by $mud.price)

This looks like mixing SQL-ish syntax with Java collections, which is precisely what JoSQL was designed to do. Why extend Velocity when you can simply use JoSQL as it was intended:

#foreach($mud in $josql.execute("SELECT [whatever] FROM mud.Type WHERE $customer.hasPurchased($mud)", $mudsOnSpecial))

... with with your muds

#end

then you just have to implement a JoSQL tool and shove it into the velocity context. You tool can do something like this:

public Iterator execute(String query, Object (or List?) source)
{
    Query q = new Query();
    q.parse(query);

    QueryResults qr = q.execute(source);


    List res = qr.getResults();

    return res.iterator();
}

I think this would be a whole lot easier than re-writing Velocity.

Since this capability is orthogonal to Velocity's, it seems to be a better choice for architecture, too.

-chris

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to