Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Jeff Higgins Newsgroups: comp.lang.java.programmer Subject: Re: building "path expressions" Date: Thu, 23 Jan 2014 15:27:13 -0500 Organization: A noiseless patient Spider Lines: 24 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Thu, 23 Jan 2014 20:28:54 +0000 (UTC) Injection-Info: mx05.eternal-september.org; posting-host="6b9e92482af47766954d85fb77d372f5"; logging-data="8639"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19iGU4PtFDw6TK/2mB1hmkc8zYpe+7+2ag=" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131103 Icedove/17.0.10 In-Reply-To: Cancel-Lock: sha1:VcLpb1fz6jnA2D21XxbtMFB9dZc= Xref: csiph.com comp.lang.java.programmer:27388 On 01/23/2014 11:37 AM, Stefan Ram wrote: > When creating an interface for a library, sometimes one wants the user > to see nesting in a »path expression«, like for example »a.b.c.d.e.f.g.h« > to convey the idea that h is a part of g, which is a part of f, and so on. Do you have an example using some real world names to help me understand? Can the names help the user to visualize the nesting, or is some other markup required? I'm drawing a complete blank here. > I think it is funny that one can use either package names /or/ nested > classes /or/ fields to implement such a path, without this choice being > visible in the »path expression«. For example, one posssibility to > implement a »path expression« »a.b.c.d.e.f.g.h« might be: > > package a.b.c; > class G { int h = 8; } > class F { G g = new G(); } > class d { static class e { static F f = new F(); }} > public final class Main > { public static void main( String[] args ) > { java.lang.System.out.println( a.b.c.d.e.f.g.h ); }} >