commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Carman" <>
Subject Re: [all] Expression API?
Date Wed, 09 Apr 2008 13:47:45 GMT
On Sun, Apr 6, 2008 at 4:43 PM, Matt Benson <> 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.


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:


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:

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:
For additional commands, e-mail:

View raw message