> Hi Rinke, > I think you would get a node if you used DataNode function instead: > <cs:var name="treatment1Name" > expr="DataNode(treatmentData,'treatments/treatment[1]/name')" /> > Could you try that? > > Regards, Woonsan >
Hi Woonsan, thanks for your answer. But are you sure about that? If I use it like that, I get an "unknown, ambiguous or inaccessible method dataNode" error. I found the dataNode method in Builtin.java. Its javadoc says: "Manifests within location attribute of <assign> element, for Commons JEXL and Commons EL based documents." So what I get from it, is that dataNode can only be used to assign something to a dataNode via <assign>. That is not what I want. I want to pass a dataNode including subElements to some java object via the cond attribute, so I can write a java method which is able to check conditions with use of the passed dataNode. So: is there a way in which I can pass a dataNode to a java object in the context which is used in a cond attribute? Data obviously doesn't work, as I can see in the Builtin code that it always is parsed to Double or String. best regards, Rinke > On Thursday, October 2, 2014 3:53 AM, R.C. Hoekstra > <[email protected]> wrote: > > Hi list, Hi people @ scxml commons, > > > > Can I pass datamodel nodes to a rootContext var, in order to process it in > > java? > > > > like this: > > <target event="bla" cond="agent.check(datamodelNodeRef)" .../>, > > where: > > * agent is an object of a java class made available to the RootContext, > > having a check method returning Boolean. I want this check method to > > evaluate the > > datamodelNode, in order to return true or false depending on elements. > > * datamodelNodeRef is a reference to some node in the datamodel. > > > > I managed to pass final nodes as string here, like this: > > > > <cs:var name="treatment1Name" > > expr="Data(treatmentData,'treatments/treatment[1]/name')" />, > > <transition ... cond="agent.check(treament1Name)"... > > > > where the treatments/treatment[1]/name is a final node. > > > > > > However, I would like to pass non final nodes of the datamodel, but > > everything seems to be evaluated as strings first, before it is passed into > > the method of the context > > var. > > > > Hope you can give me a clue. > > > > And, if these kind of constructions are possible, how would they do in > > terms of performance? > > > > thanks, Rinke
