On 9/29/06, Peter Reilly <[EMAIL PROTECTED]> wrote:
Or maybe we could implement a "mixin" method protocol:
void antMixin(ConditionBase x) {
this.condition = x;
}
This would be usefull for types/tasks that share common attributes but
do not want to use java's single inheratance to get the attributes/nested
elements.
For example the matches condition has regex attributes (singleline,
multiline, casesensitive),
pattern and nested regex. There could be given to a mixin class -
RegexMixin, this could be shared with other types/tasks.
void antMixin(RegexMixin x) {
this.regexParams = x;
}
That would be *fantastic* Peter!!!
So I could declare several mixin methods, antMixin(FooMixin),
antMixin(BarMixin), and when faced with an otherwise un-recognized
attribute or nested element, it would use IH on the mixed-in types
FooMixing and BarMixin to see if any of these supports the unknown
attribute or nested element?!
Overlap in attr/elem between the main type and the mixins would be
silently ignored (maybe a warning a warn or debug level only), the
main type taking precedence; but overlap in attr/elem between the
mixins would be an error (ambiguous).
I created a bunch of conditional tasks or types, which made use of a
single ConditionSupport class, but I still had to expose of the
attributes from ConditionSupport in the tasks/types themselves, when I
couldn't inherit from it. The mixin solution would have elegantly
solved this.
I *really* look forward to mixins! --DD
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]