On Fri, 2003-12-05 at 11:17, Simon Kitching wrote:
> Hi Robert,
> 
> I think the code committed is just fine.

On further thought, I have a more significant change to suggest.

I think the VariableSubstitutor and MultiVariableExpander classes should
be merged. VariableSubstitutor really is a nothing class, just
delegating all its work to other classes. 

If it is decided to have just one implementation that handles both the
simple ant-like case, and the more complex implementation currently in
MultiVariableExpander, then the resulting class name could be
"BaseVariableSubstitutor", otherwise it could be called
MultiVariableSubstitutor.

I suggest that the (new) BaseVariableSubstitutor should implement both
Substitutor and VariableExpander, and pass itself to the
VariableAttributes class as the expander to use.

This does mean that the constructor would need to change:
  public BaseVariableSubstitutor(boolean doAttributes, boolean doBody)


PRO:
* one less class in the digester code base
* one less class for the user to deal with.
  they just instantiate a BaseVariableSubstitutor (or whatever) rather
  than both a VariableSubstitutor and a MultiVariableExpander.

CON:
A user can't just write a new VariableExpander implementation; they
need to write a new Substitutor implementation instead. However as
noted above, the code currently in VariableSubstitutor is pretty
trivial; I can't see that being an issue in practice.


Regards,

Simon


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

Reply via email to