On Thu, Apr 10, 2008 at 1:59 PM, James Carman
<[EMAIL PROTECTED]> wrote:
> On Thu, Apr 10, 2008 at 1:46 PM, James Carman
> <[EMAIL PROTECTED]> wrote:
> > If people feel that [expression] isn't the right name for what I've
> > come up with, I don't really care (as I said, what's in a name). But,
> > the idea of an expression just fit in my mind. I'll try to come up
> > with something else if you're really that opposed to me using the name
> > "expression". The term "macro" came to mind when I was thinking about
> > a name for this thing, since the builders are essentially recording
> > something from the user (on a proxy) that will later be played back
> > (on some other object).
> >
>
> Other words that convey a similar idea:
>
> variable - the "expression" is really a variable (a value that can be
> modified or retrieved).
> value - the "expression" represents a settable/gettable "value"
> shortcut - the "expression" is a shortcut for calling a (potentially)
> chained series of method calls
> flatten - the "expression" flattens the chained series of method calls
>
To spell out the "macro" API, it would be:
public interface Macro<R,V>
{
public V getValue(R root);
public void setValue(R root, V value);
}
public interface Recorder<R>
{
public R template();
public <V> Macro<R,V> record(V value);
}
A usage would look like:
Recorder<Person> recorder = ...;
Macro<Person,String> addressCityMacro =
recorder.record(recorder.template().getAddress().getCity());
Person p = ...;
String city = addressCityMacro.getValue(p);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]