The concept of an "expression" comes up within a lot of contexts.
There are various ways to define/evaluate an expression, currently,
but there's no standardized API way to deal with them.  I was trying
to come up with an API, but I don't know where it should belong.
Should it be part of Lang, BeanUtils, or its own project.  Here's the
basic idea:

public interface Expression
{
  public Object getValue(Object rootObject);
  public void setValue(Object rootObject, Object value);
}

This is similar to the way OGNL thinks of things except they "compile"
their expressions into some nebulous "tree" object (no API, just
represented as an Object) and you then use the static methods on the
Ognl class to get/set values using that tree.  The way I see it, this
interface could be implemented in a variety of ways (OGNL, MVEL,
JSTL-EL, reflection, Javassist, etc.).  So, what I'm looking for is a
home.  Where should something like this belong?  Does it even belong
in Commons at all, since it's a "framework" (it could be argued that
Proxy is a framework much like this too, though)?  Thoughts anyone?

This idea came up when discussing the concept of "recording" this
expression using proxied root objects (similar to how mock testing
frameworks do it).  I have the logic to record invoked methods using
Commons Proxy, but I need a way to generate expression objects that I
can then evaluate later.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to