On Sun, Apr 6, 2008 at 4:43 PM, Matt Benson <[EMAIL PROTECTED]> wrote: > I'm still hoping to bring Morph on board soon, and its > current codebase contains several facets including a > Language abstraction. I really think there's some > overlap there with [el], but another piece of Morph is > its Reflector APIs which are similar to BeanUtils' > DynaBean, and I'm thinking the Reflector APIs could go > far toward providing a useful abstraction to plug > arbitrary object types into expression evaluators. >
Matt, I took a brief look at Morph and the Language interface. I like the idea, but I'm looking for something a bit more object-oriented (not that Morph isn't, I'm just saying my idea goes 0.0001 percent more in the OO direction :). I'm looking to take the String parameter out of the get/set method's API. I want an object that represents a gettable and (potentially) settable expression. Would that be something that goes into Morph? The Wicket folks are looking for something somewhat soon. I was just wondering if this idea was something we could get into one of our current projects (or if it even belongs there). Perhaps I can start a sandbox project for my ideas. What I have in mind is implementations using such things as: Javassist MVEL OGNL JXPath JSTL-EL There would be implementations of Expression for each of those. Also, there would be builders that would allow you to use Java to build up the expression which could be played back later. So, you would do something like: builder.recorder().getAddress().getCity(); Expression e = builder.createExpression(); Somehow we could get this on one line, but the idea is similar to how EasyMock (or JMock) works. You perform operations on the proxied "recorder" (proxy already has this built-in now) and it remembers what you did. Then you ask the recorder to build an Expression object which allows you to replay what you just did at a later date on the same type of root object (it would allow you to set that value also). --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]