Brent
--
You received this message because you are subscribed to the Google Groups "openXdata Developers" group.
To post to this group, send email to openxd...@googlegroups.com.
To unsubscribe from this group, send email to openxdata-de...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/openxdata-dev?hl=en.
This sounds like a good approach!
If relevant, you could also send a zip with mforms jar/jad + protocol jar, then I can also add a separate instance to a demo server so it is easier to verify for non devs.
Best
Jørn
____________________________________________________________________________
Jorn Klungsoyr
openXdata - Centre for International Health, University of Bergen, Norway
www.openxdata.org / www.cih.uib.no / www.openrosa.org / www.open-mobile.org
Mobile: +4791365731, Skype/GoogleTalk: jornklung Alternative email: jorn.kl...@gmail.com
Post: Postboks 7800, 5020 Bergen, Visit: Årstadveien 21, 5th Floor, Bergen
------¤¤¤¤------
My suggestion is to fold this back asap given that there has come no blocking concerns or objections from the active developers of the latest iterations.
Also given that mforms / server has branched off for an upcoming public release you will have a number of iterations to fine tune and adjust any potential issues that could come up before mforms 2.x hits the public.
Best
Jørn
____________________________________________________________________________
Jorn Klungsoyr
openXdata - Centre for International Health, University of Bergen, Norway
www.openxdata.org / www.cih.uib.no / www.openrosa.org / www.open-mobile.org
Mobile: +4791365731, Skype/GoogleTalk: jornklung Alternative email: jorn.kl...@gmail.com
Post: Postboks 7800, 5020 Bergen, Visit: Årstadveien 21, 5th Floor, Bergen
------¤¤¤¤------
From: openxd...@googlegroups.com [mailto:openxd...@googlegroups.com] On Behalf Of Brent Atkinson
Sent: Tuesday, February 21, 2012 12:07 PM
To: openxd...@googlegroups.com
Subject: Re: [openXdata-dev] Re: What to do with OXD-mForms-2.0
Heh, sorry, it's my pedantic robot-brain. There's a negative connotation to resistant I didn't intend. I was thinking the dictionary version: characterized by or showing resistance; resisting. Anyway, I was asking for people to resist, and I would much rather resolve it now than later. So, I'm sorry if that came out wrong...
Whether this iteration or next is something I don’t think I have or should have any say in…. :)
If I did have a say, I would say go ahead and reintegrate in this iteration.
a)Why the decoupling of Operator and Converter?
b)What is with the Stack parameter to the getArity method?
c)rpneval.properties overriding or repeating operator/operterms?
The way i see it, the operator knows better how to "prepare its operands". Thus, rather than feeding the operands converted by some (arbitrary) converter in which we might pick a wrong converter, why not couple them? I observed this:
1. Everywhere the operator is needed, practically the "same converter implementation" is set to that
operator
2.The operator will have to recheck the operands again, it can't trust the converter to have done the right job to the operands, lest things will blow up!
3.Even at times we may have needed some other converter to convert some albeit weird operands, we are not spared from implementing the Converter interface, while extending some base operator looks a lot straight forward.
4.Overriding the profiles? Rather than specifying same operator and (may be same) opterms, the custom rpneval.properties should introduce additional operators and opterms not covered in default rpneval.properties, and overriding only those operators it sees fit.
And,
5. Where might the stack of operands be needed by the operator to determine its arity?
I made some changes to the base RPN to port to my much revamped mforms vis:
*Removed the converter interface and added convert method as a do nothing method to the AbstractOperator to be overridden by operators which need to do conversion before evaluation
*implemented eval in AbstractOperator to ensure conversion is attempted before proceeding to actual evaluation and introduced a method evalExpression for subclasses to implement to do actual evaluation
*A look at RPN suggests it should act more like a framework which you get the best out of it just by setting some few configurations, thus the DefaultEvaluator implementation seems a good fit to evaluate any expression as long as powered with the right operators! So the Evaluator factory needs only to lookup the
configured operators.
*Changed loading of rpneval.properties files in EvaluationFactory to account for extensibility or overriding where appropriate.
With these, you can see the simplified configuration files attached for default_rpneval and custom_rpneval and the corresponding patch on rpn-eval to see the changes......
Best regards,
Donald