#flatCollect:. In my case, the variable 'attributes' is of type http://damiencassou.seasidehosting.st
FAMIXType>>incomingAccesses ^ self privateState cacheAt: #incomingAccesses ifAbsentPut: [ attributes flatCollect: [ :each | each incomingAccesses ] ]
Hi,
in this method
when the cache is empty, it is initialized with the result of FMMultivalueLink. When sending #flatCollect: to a FMMultiValueLink, the result is an OrderedCollection (because FMMultiValueLink>>#species returns OrderedCollection). This means that it is no more possible to update the list of incomingAccesses.
Is that the desired behavior?
In my case, this behavior triggers a bug. When the following method is FMMultiValueLink class>>on: element update: selector from: old to: new "refresh the other side of the relations to reflect change in value" old ~= new ifTrue: [ old notNil ifTrue: [ (old perform: selector) unsafeRemove: element ]. new notNil ifTrue: [ (new perform: selector) unsafeAdd: element ]]. ^ new
executed while importing a mse, I get a DNU:
This is because the (new perform: selector) expression returns an OrderedCollection that does not understand #unsafeAdd: (selector equals to #incomingAccesses).
Could somebody help me please?
-- Damien Cassou "Success is the ability to go from one failure to another without losing enthusiasm." --Winston Churchill
My guess would be that this is remnant of the old navigation system (Cook)
You should use the new one (Chef) which is more robust and generic:
aFAMIXType queryIncomingAccesses
you can then refine the query:
aFAMIXType queryIncomingAccesses atClassScope -> all the classes that access an attribute of aFAMIXType
aFAMIXType queryIncomingAccesses atClassScope withoutSelfLoops -> same, but aFAMIXType will be filtered out (if it does access its own attributes which it should)
aFAMIXType queryIncomingAccesses opposite -> all behaviourals (presumably methods) that access an attribute of aFAMIXType
nicolas
On 16/02/2015 18:50, Damien Cassou wrote:
#flatCollect:. In my case, the variable 'attributes' is of type http://damiencassou.seasidehosting.st
FAMIXType>>incomingAccesses ^ self privateState cacheAt: #incomingAccesses ifAbsentPut: [ attributes flatCollect: [ :each | each incomingAccesses ] ]
Hi,
in this method
when the cache is empty, it is initialized with the result of FMMultivalueLink. When sending #flatCollect: to a FMMultiValueLink, the result is an OrderedCollection (because FMMultiValueLink>>#species returns OrderedCollection). This means that it is no more possible to update the list of incomingAccesses.
Is that the desired behavior?
In my case, this behavior triggers a bug. When the following method is FMMultiValueLink class>>on: element update: selector from: old to: new "refresh the other side of the relations to reflect change in value" old ~= new ifTrue: [ old notNil ifTrue: [ (old perform: selector) unsafeRemove: element ]. new notNil ifTrue: [ (new perform: selector) unsafeAdd: element ]]. ^ new
executed while importing a mse, I get a DNU:
This is because the (new perform: selector) expression returns an OrderedCollection that does not understand #unsafeAdd: (selector equals to #incomingAccesses).
Could somebody help me please?
-- Damien Cassou "Success is the ability to go from one failure to another without losing enthusiasm." --Winston Churchill _______________________________________________ Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev