Return-Path: Delivered-To: apmail-cayenne-dev-archive@www.apache.org Received: (qmail 64025 invoked from network); 29 Jan 2010 01:56:12 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 29 Jan 2010 01:56:12 -0000 Received: (qmail 63275 invoked by uid 500); 29 Jan 2010 01:56:12 -0000 Delivered-To: apmail-cayenne-dev-archive@cayenne.apache.org Received: (qmail 63242 invoked by uid 500); 29 Jan 2010 01:56:11 -0000 Mailing-List: contact dev-help@cayenne.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cayenne.apache.org Delivered-To: mailing list dev@cayenne.apache.org Received: (qmail 63232 invoked by uid 99); 29 Jan 2010 01:56:11 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Jan 2010 01:56:11 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of lachlan.deck@gmail.com designates 74.125.78.145 as permitted sender) Received: from [74.125.78.145] (HELO ey-out-1920.google.com) (74.125.78.145) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Jan 2010 01:56:01 +0000 Received: by ey-out-1920.google.com with SMTP id 4so308561eyg.44 for ; Thu, 28 Jan 2010 17:55:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:content-type:mime-version :subject:from:in-reply-to:date:content-transfer-encoding:message-id :references:to:x-mailer; bh=bf6lSczph6YSv+HugbCjqPKx6iJ2fhVDWPRQc8lvNas=; b=BWKpLFMDHj7hI8K0xCX++nDgTY/IGi7KlThF3ddtNsKcMcYd9xGq7XEbztM1mK0kKx t8Oj8LcooaUuUJpRNXohbJbRT5V8J3zuCIbbdDA4+Q5GxLRClQtFtjiZQDx1Nps2sRsW PLE0hUk1ykR2iAPJsFanOfmGzVvIV66gsOP8s= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=content-type:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to:x-mailer; b=k57Z0ziKBsYcRfIM+NfSkFIQfw6tFRP6nDz4+qufs/pvXsSfH2+XmDXOo2R+8QtIz5 IZCNDx4w5pxs9SlkJjldO76Dy2HNnYoxxlQRpIxE43adQ9bOPAIaWRVImp0Bzr4Ew96G QRw2PfGakOSGcoZiEpxDCzKOdQhZMUnLSxGqo= Received: by 10.213.100.154 with SMTP id y26mr143066ebn.70.1264730141513; Thu, 28 Jan 2010 17:55:41 -0800 (PST) Received: from ip-146.ish.com.au (ip-146.ish.com.au [203.29.62.146]) by mx.google.com with ESMTPS id 15sm1078515ewy.8.2010.01.28.17.55.36 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 28 Jan 2010 17:55:39 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Apple Message framework v1077) Subject: Re: split expressions From: Lachlan Deck In-Reply-To: Date: Fri, 29 Jan 2010 12:55:29 +1100 Content-Transfer-Encoding: quoted-printable Message-Id: <3B1E26F9-6201-417F-9F88-B6492DC8D7D3@gmail.com> References: <7C9958A1-DED5-4B03-8015-FCF8F75EAF9A@objectstyle.org> <4B4D90B3.6080106@maniatis.org> <24443385-F9ED-4C91-9C1F-8D8C4C162432@objectstyle.org> <4B4DA436.40808@maniatis.org> <4B4DBECB.3070300@maniatis.org> <490F4342-2E90-44ED-9A1C-2BE036599826@objectstyle.org> <4B4EE6A8.3040300@maniatis.org> <72724C82-DC8F-4E62-8DEB-2A886C0F2576@objectstyle.org> To: dev@cayenne.apache.org X-Mailer: Apple Mail (2.1077) X-Virus-Checked: Checked by ClamAV on apache.org Hi Andrus, just following this up again. Just a few questions: a) is it also worth also thinking about the ability to specify the = join-type in the model for a relationship in order to specify what's the = default? b) is there any further discussion needed to identify necessary jira = tasks? On 15/01/2010, at 10:51 PM, Andrus Adamchik wrote: >=20 > On Jan 15, 2010, at 11:05 AM, Andrus Adamchik wrote: >=20 >> * ASTs are generic and not very intuitive for direct manipulation in = API. A good analogy would be DOM trees vs. real object models = represented by those trees. >>=20 >> * ASTs often have slight differences in structure compared to an = ideal domain object. This is more pronounced in EJBQL, that has AST's = for SelectClause and other irrelevant nodes on the tree (irrelevant to = the user of course) >>=20 >> * Due to the use of JavaCC as a parser, we have this odd looking = method names inherited from the parser Node class (e.g. = org.apache.cayenne.ejbql.parser.Node) >=20 >=20 > Answering my own question (I hope)... I don't remember all the history = by now, but actually this might be the case when we went along with the = framework-provided convenience, ignoring its downsides. We are using = JJTree syntax - a JavaCC preprocessor that allows to build ASTs "out of = the box". I think if we take a step back and use straight JavaCC, we can = create arbitrary domain objects at the expense of extra code and reduced = parser clarity. Or we can keep using JJTree and do a postprocess = conversion of AST to domain object, at the expense of performance = (similar to SAX vs. DOM choice I guess). >=20 > In any event we need to experiment modeling EJBQL (and potentially = Expressions) as "AST-free" domain objects and see how that works, before = rewriting the parsers. >=20 > Andrus with regards, -- Lachlan Deck