Hi guys. Right now, our extension to export Moose models does the following:
accepts: anObject MooseModel meta descriptionOf: anObject class ifAbsent: [ ^ false ]. ^ true
so....if an object is NOT found in the #descriptionOf: then we use the normal Fuel serialization. If it WAS found, then we do something like:
FLFameCluster >> referencesOf: anObject do: aBlock
self attributes do: [ :anAttribute | | values | values := anAttribute getFrom: anObject. (self shouldIgnore: anAttribute withAll: values) ifTrue: [ aBlock value: 0 ] ifFalse: [ aBlock value: values size. values do: [ :aValue | aBlock value: aValue ] ] ]
and
shouldIgnore: attribute withAll: values "Copied from FMRepositoryVisitor>>ignoreProperty:withAll:"
^ values isEmpty or: [ attribute isDerived or: [ attribute type == FM3MetaDescription boolean and: [ values size == 1 and: [ values first == false ]]]]
so...basically we follow all attributes.
Now...my question is (actually, Martin), instead of doing the "if" to see whether I should do that or the normal fuel procedure, instead of being MooseModel meta descriptionOf: anObject class ifAbsent: can be: "object kindOf: MooseEntity" ?
would that be the same? in other words, all what is included in descriptionOf: are MooseEntities? all MooseEntities (whether they are included in descriptionOf: or not should be ne serialized that way?
I ask because it would make the code much easier.
thanks