[JW Lua] DeepDeleteData / DeepSave

Jari Williamsson jari.williamsson at mailbox.swipnet.se
Sun Sep 7 20:51:01 CEST 2014


On 2014-09-07 19:42, Jan Angermüller wrote:

> while you were just talking about Deep...-functions,
> could you please give a short explanation about the difference to the
> "normal" delete/save ? I was always wondering which version to use.
> Usually at least one was working, but I was not sure, if it was the
> right one.
>
> For example with articulation defs. When I do use which save and which
> delete ?

Some Finale "elements" are stored in more than one data location, and 
all these data locations are part of the full "element". In the case of 
FCTextExpressionDef, the expression definition contains of:
1. The main expression def data
2. The text string data
3. The (optional) enclosure data

So, to be able to not bother with all the additional data structures, I 
created the "Deep" methods. The "Deep" methods would affect all these 
data structures. The "non-Deep" methods would only affect the main 
expression def data structure.

If there is no specific "Deep" implementation for a class, the "Deep" 
and "non-Deep" versions will do the same thing (through inheritance). 
For FCArticulationDef for example, there is no additional data stored 
elsewhere, so DeepDeleteData() and DeleteData() would do the same.

Please note that it will not delete/save loosely connected data that are 
just referenced. For example: executable playback shapes in the 
expression defs will not be affected by a "Deep" method.

An area of confusion might be the FCSmartShape class, where the "Deep" 
methods instead are named "Everything" as a suffix. I need to fix that.


Best regards,

Jari Williamsson





More information about the JWLua mailing list