Return-Path: Mailing-List: contact commons-user-help@jakarta.apache.org; run by ezmlm Delivered-To: mailing list commons-user@jakarta.apache.org Received: (qmail 71141 invoked from network); 24 Feb 2003 21:01:55 -0000 Received: from web11707.mail.yahoo.com (216.136.172.73) by daedalus.apache.org with SMTP; 24 Feb 2003 21:01:55 -0000 Message-ID: <20030224210200.68240.qmail@web11707.mail.yahoo.com> Received: from [198.204.133.209] by web11707.mail.yahoo.com via HTTP; Mon, 24 Feb 2003 13:02:00 PST Date: Mon, 24 Feb 2003 13:02:00 -0800 (PST) From: Dmitri Plotnikov Reply-To: dmitri@apache.org Subject: RE: [JXPath] Use of contexts/variables To: Jakarta Commons Users List In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N Ed, I could not have said it better. I am sorry I was not clear in my original response. Thanks, - Dmitri --- Ed Peters wrote: > Steve, > > If I understand you correctly, Dmitri's suggestion should work > perfectly for > you. The Variables interface contains a method called "getVariable"; > in > your case you would implement it to fetch objects out of this map > based on > their name. For instance, in response to a call to > > .getVariable("Var1") > > You could simply return the value of Var1 (instead of a Map which the > user > would have to further dereference). > > Ed > > > -----Original Message----- > > From: Steve Pannier [mailto:Steve_Pannier.CST@jacada.com] > > Sent: Monday, February 24, 2003 11:55 AM > > To: Jakarta Commons Users List > > Subject: Re: [JXPath] Use of contexts/variables > > > > > > > > Dmitri, > > > > I'm not clear on how implementing the Variables interface > > can help us. > > > > I'm not sure I explained our situation well enough. The data > > map we keep for our variables has a top level element whose > > key is the variable name. For example, if the user's variable > > name is "Var1", then the top level element of that variable's > > data map is "Var1" also. Since we need to allow access to > > any number of the user's variables in a single xpath expression, > > we decided to define each of their variables as JXPath > > variables, and add them to a NULL root context. This is why > > the user must use $Var1/Var1/...." in their expression (the > > 1st "Var1" being the JXPath variable name, the 2nd one > > being the top level element of the map). We would like them > > to only have to enter "$Var1" (or "/Var1") in their expression > > to reference everything below the top level element of the > > variable's data map. That's why I was thinking we would > > need to pre-parse the expression itself and add in the "/Var1" > > for access to the top level element of the variable's map. We > > do need them to specify the "Var1" in the expression so we > > know which variable's map they are referring to (their > > variables may contain like-named sub elements so we > > need a way to avoid name collisions - for example, we need > > to be able to differentiate between "Var1/count" and > > "Var2/count"). > > > > If necessary, we can modify the JXPath code itself to implement > > this, but I was hoping there would be another way. I've tried > > playing around with nested contexts, but with no luck so far. > > > > Anyway, I hope this is explains things better. Let me know > > if implementing the Variables interface is still the way to > > accomplish this. > > > > Regards. > > > > > > Steve Pannier > > Jacada, Inc. > > (763) 201-0002 Ext. 219 > > spannier@jacada.com > > http://www.jacada.com > > > > > > > Steve, > > > > > > This is an easy one. In JXPath Variables is an interface - you > are > > > free to provide your own implementation and install it on > > JXPathContext > > > by calling context.setVariables(). It is a very simple > > interface and > > > you won't have any trouble meeting your requirement. > > > > > > I hope this helps. > > > > > > - Dmitri > > > > > > > > > --- Steve Pannier wrote: > > > > Dmitri, > > > > > > > > Here's a new question for you. > > > > > > > > Our product allows the user to include any number of > > > > "variables" in their xpath expression. These are not > > > > xpath variables, but rather variables they define in our > > > > design time framework. The user is free to define the > > > > type for each variable, and they can define structure > > > > types. Each variable's data is contained in a Map > > > > hidden in a subclass of the variable. Now, when they > > > > provide an xpath expression, we allow them to include > > > > any number of these variables they choose to. So, in > > > > order to allow us to evaluate these expressions without > > > > having to first parse the expression, we decided to create > > > > a root context of NULL, and then add each variable's > > > > data map to the context as an xpath variable. The result > > > > of this is, if the user has a variable named "Var1", they > > > > must reference it in their expression as "$Var1/Var1". > > > > > > > > We would rather the user not have to use this syntax in > > > > expressions for referencing variables. We are talking > > > > about allowing them to simply use "$Var1" in their > > > > expression. Then before evaluating the expression we > > > > would substitute the "$Var1" with "$Var1/Var1". This > > > > would require us to either write our own pre-parser, or > > > > somehow make use of JXPath code to do this. But, I'm > > > > curious if there's any other way to attack this. Maybe > > > > by defining the context differently. Any ideas? > > > > > > > > Let me know if the above explanation of what we're > > > > trying to do is not clear. > > > > > > > > > > > > Steve Pannier > > > > Jacada, Inc. > > > > (763) 201-0002 Ext. 219 > > > > spannier@jacada.com > > > > http://www.jacada.com > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: > > commons-user-unsubscribe@jakarta.apache.org > > > > For additional commands, e-mail: > > commons-user-help@jakarta.apache.org > > > > > > > > > > > > > __________________________________________________ > > > Do you Yahoo!? > > > Yahoo! Tax Center - forms, calculators, tips, more > > > http://taxes.yahoo.com/ > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: > commons-user-unsubscribe@jakarta.apache.org > > > For additional commands, e-mail: > > commons-user-help@jakarta.apache.org > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org > > For additional commands, e-mail: > commons-user-help@jakarta.apache.org > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org > For additional commands, e-mail: commons-user-help@jakarta.apache.org > __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/