Path: csiph.com!usenet.pasdenom.info!news.albasani.net!.POSTED!not-for-mail From: Jan Burse Newsgroups: comp.lang.java.programmer Subject: Re: Good Fowler article on ORM Date: Sat, 12 May 2012 13:27:37 +0200 Organization: albasani.net Lines: 45 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.albasani.net aDWGWbwz2LoTp4fmxNG+Dp64Fyz7kOQ8Xcplln4S02lWOKbgMXT67UW+gSt0El+u0GvRMQtH0O/G/TDdJPzjV6DfC2UohqAiikdzcibwvrCB25cxs2NfLt0h5V18i+wD NNTP-Posting-Date: Sat, 12 May 2012 11:27:39 +0000 (UTC) Injection-Info: news.albasani.net; logging-data="RMEHW5dr7ed4Gcqgq29yDnNsPsFUoam8DH1wtjb5/4AD3wSaPLxvD8B/sw8oYos4V6f+aJ/4ROBJ+INGXX5tMNhiPINxoFtj7z+V98/0tFh8yrf3bqhWtAl07k6COzf8"; mail-complaints-to="abuse@albasani.net" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:12.0) Gecko/20120429 Firefox/12.0 SeaMonkey/2.9.1 In-Reply-To: Cancel-Lock: sha1:UkG0n5RPr5sCa4X22kaKtd/m01A= Xref: csiph.com comp.lang.java.programmer:14487 Jan Burse schrieb: > > But if you know that youre deployment range will be only > top-notch JITs you might go into the pain of adding additional > class to the package for the iterator implementations. This > would blow up the packgage to 11 classes, counting the > .class files. But I doubt this is necessary, since these classes will not be seen by the client. The client only sees: - Give me all tupples that match a given pattern Inside the API this is then translated into: - Oh the client wants tupples for a given pattern, lets first find a suitable index. - Alternative 1: - Oh this part of the tupple already has a an index, lets lookup this part of the tupple - Pick the set found by the lookup - Alternative 2: - Oh this part of the tupple could profit from an index, but there is none yet, lets build an index. - Lookup this part of the tupple in the new index - Pick the set found by the lookup - Oh we have a set now, lets check whether the set is already suitable. - Alternative 1: - The set is already small enough or there are no more potential sub index. - Return the set - Alternative 2: - The set is still large and there is a potential sub index. - Continue use case from start inside the set. So the involved data structure is something along: Index = ArrayList> But this is not visible to the client. The client will only see: Tupples = ArrayList