In menssana, I wanted to be able to describe a property by only specifying its 'key' from the 'privateState' dictionary, without caring if some setters and getters exist. Concretly , When building the metamodel for a concern, I can write:
aFameMMBuilder package: 'FAMIX' with: [ aFameMMBuilder class: 'Class' with: [ aFameMMBuilder property: #WLOC with: #Number. aFameMMBuilder property: #NOM with: #Number. aFameMMBuilder property: #NOA with: #Number. ] ].
I guess I could specify the corresponding selectors (or implement them) instead. it was simon that implemented that, maybe I do not have all the reasons in mind
2011/4/9 Tudor Girba tudor.girba@gmail.com
Hi Cyrille,
I see that you added the mmGetProperty: / mmSetProperty:to methods back in MooseEntity. They are not correct because they depend on the internals of the PropertyDescription, and they change the semantics of the method defined in Object:
mmGetProperty: aFM3PropertyDescription (self class canUnderstand: aFM3PropertyDescription implementingSelector) ifTrue: [ ^ self perform: aFM3PropertyDescription implementingSelector ] ifFalse: [ ^ self propertyNamed: aFM3PropertyDescription name ].
mmSetProperty: aFM3PropertyDescription to: value (self class canUnderstand: aFM3PropertyDescription implementingSelector asMutator) ifTrue: [ self perform: aFM3PropertyDescription implementingSelector asMutator with: value ] ifFalse: [self propertyNamed: aFM3PropertyDescription name put: value].
This breaks Metanool and it is not nice. The comment of your commit says that you are using it in Menssana. I am sure we can find another solution. So, could you describe the scenario you are using it in?
Cheers, Doru
-- www.tudorgirba.com
"Beauty is where we see it."
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev