I have to reflect on "classic" Behavior and also on traits. For Behavior I
can use aTraitOrBehavior canUnderstand: aSelector and be assured that at another point in time, in the same image instances of aTraitOrBehavior will respond to aSelector. What query must be used for Trait and TraitComposition, in the same sense, i.e. users of this traits / composition will definitely respond to aSelector. And what query must be used in analogue to #isBehavior when aTraitOrBehavior is Trait or a TraitComposition. I have to avoid DNU in images without traits. I can find out many details by myself but would like to check against an expert opinion. Thank you in advance. /Klaus |
On Jul 12, 2006, at 11:20 , Klaus D. Witzel wrote: > I have to reflect on "classic" Behavior and also on traits. For > Behavior I can use > > aTraitOrBehavior canUnderstand: aSelector > > and be assured that at another point in time, in the same image > instances of aTraitOrBehavior will respond to aSelector. > > What query must be used for Trait and TraitComposition, in the same > sense, i.e. users of this traits / composition will definitely > respond to aSelector. just like classes, a traits also understand #canUnderstand: "TPureBehavior canUnderstand: #canUnderstand:" --> true because "TPureBehavior selectors includes: #canUnderstand:" --> true and the trait TPureBehavior is used both by the classes Behavior and TraitBehavior. for trait compositions, there is #includesMethod: e.g., "(TPureBehavior @ {#foo: -> #compile:}) asTraitComposition includesMethod: #foo:" --> true > And what query must be used in analogue to #isBehavior when > aTraitOrBehavior is Trait or a TraitComposition. I have to avoid > DNU in images without traits. whether an object is a trait: #isTrait there's no such test for trait compositions because I never needed one -- you would have to add one yourself. Also, of course, #isTrait will not work in older images unless you add this method as an extension to Object. HTH, Adrian > > I can find out many details by myself but would like to check > against an expert opinion. Thank you in advance. > > /Klaus > > |
Hi Adrian,
on Wed, 12 Jul 2006 20:53:43 +0200, you wrote: > On Jul 12, 2006, at 11:20 , Klaus D. Witzel wrote: > >> I have to reflect on "classic" Behavior and also on traits. For >> Behavior I can use >> >> aTraitOrBehavior canUnderstand: aSelector >> >> and be assured that at another point in time, in the same image >> instances of aTraitOrBehavior will respond to aSelector. >> >> What query must be used for Trait and TraitComposition, in the same >> sense, i.e. users of this traits / composition will definitely respond >> to aSelector. > > just like classes, a traits also understand #canUnderstand: > > "TPureBehavior canUnderstand: #canUnderstand:" --> true > > because "TPureBehavior selectors includes: #canUnderstand:" --> true > and the trait TPureBehavior is used both by the classes Behavior and > TraitBehavior. Yes, I've seen that but wasn't sure this coveres all cases. > for trait compositions, there is #includesMethod: > e.g., "(TPureBehavior @ {#foo: -> #compile:}) asTraitComposition > includesMethod: #foo:" --> true Then, together with the above, the following must hold for each and every nut and bolt: ((something respondsTo: #canUnderstand:) and: [something canUnderstand: aSelector]) or: ((something respondsTo: #includesMethod:) and: [something includesMethod: aSelector]) >> And what query must be used in analogue to #isBehavior when >> aTraitOrBehavior is Trait or a TraitComposition. I have to avoid DNU in >> images without traits. > > whether an object is a trait: #isTrait > there's no such test for trait compositions because I never needed one ... a situation which I often value as good design :) > -- you would have to add one yourself. Also, of course, #isTrait will > not work in older images unless you add this method as an extension to > Object. Right. For the moment I'll let #respondsTo: do the work, until performance demands something else. > HTH, Yes. I got one bit more than I hoped for, a simple expression governed by a single quantifier. Thank you Adrian. /Klaus > Adrian > >> >> I can find out many details by myself but would like to check against >> an expert opinion. Thank you in advance. >> >> /Klaus >> >> > > > |
Free forum by Nabble | Edit this page |