2010/10/21 Cyrille Delaunay <cy.delaunay(a)gmail.com>
Hello,
Currently, i'm looking a bit at the way moose export and import entities
using Fame descriptions.
handleFameProperty:value: is a method used by fame when we try to set a
value to an attribute not described in the current metaModel used to import.
By default It does nothing and just inform by writing in the Transcript.
A thing that I understand (or at least that I think I understand :)) is
that the method handleFameProperty:value: is overriden by MooseEntity for
this reason:
If an attribute is not described in the metaModel, this is certainly a
property from the cache and therefore we should store this value in the
cache of the element. This is what the method handleFameProperty:value: does
in MooseEntity.
I was wondering if it would be a good idea to look before if a mutator
selector does not exist for the property name and only after that store in
the cache. Usually when you use the classic exporter from moose, you can not
be in this case, because the metamodel use to export is exactly the same
than the one to import.
In my case,I generate my own metaModel to export (subclassing
PragmaProcessor) and export some property that are not described with Fame
pragmas (what did usually the classic exporter). Those properties will
therefore be lost.
Maybe the idea is also that if you export with a specific metaModel, you
should import with this same specific metaModel ?
In fact I guess this is the best solution :) I am able to re-compute the
meta-model, give it to the fame importer and it seems to work well.
At least you are aware of my thoughts of the day :)