Sounds like the right approach, since the property inheritance needs to be going up the hierarchy after the retrieve-marker has been resolved. I hope it's not too difficult to implement. I haven't taken a closer look myself.
On 11.06.2006 15:28:57 Andreas L Delmelle wrote: > On Jun 11, 2006, at 03:56, Andreas L Delmelle wrote: > > Just FYI: > > Some more follow-up on the problem WRT percentage resolution in > > markers: > > > > <snip /> > > My suspicion that the percentage resolution is done purely via the > > FOs pointed to by the PropertyList turned out to be correct, and > > what I'm currently looking at is rather nasty... 8) > > > > The PropertyLists stored in the marker are created based on the > > original FOs, which means, IIC that all LengthBases or instances of > > derived classes in that PropertyList get a reference to the > > original FO. > > Later on, when RetrieveMarker is resolved, the marker descendants > > are cloned and the clones are then bound to these PropertyLists > > (=Map descPLists in Marker.java). > > As a result, the percentage resolution tries to climb a tree of LMs > > that was never created (there is no LM corresponding to the > > original FO) > > I think the correct way to solve this, is to have the Markers store > references, not to the PropertyLists, but to the original Attributes. > pList.addAttributesToList() should be called only after the clone is > created. > > IOW: simply defer that call for every passing node when > 'IN_MARKER_CONTEXT' (=non-existing variable, member of Flow?), and > instead store the Attributes of the Marker descendants in the > HashMap. The PropertyList should also be instantiated only during the > cloning process (the clone needs to be passed to its constructor to > make everything work correctly). > > The intention of the MarkerPropertyList subtype seems correct, but it > doesn't go far enough (should store the original Attributes instead > of the parsed explicit properties; once they're parsed the damage is > already done, so to speak). > > > Later, > > Andreas Jeremias Maerki