Erich, thank you very much for the links! On 01.04.2020 17:35, Erich Steinböck wrote: > Rony, you find the DocBook reference at > https://tdg.docbook.org/tdg/4.5/docbook.html > Each tag lists its allowed parents and children (if any). > > You can find ooRexx 4.2 documentation at > https://sourceforge.net/projects/oorexx/files/oorexx-docs/4.2.0/ Looking at the Set or Bag classes (in the 4.2 rexxpg.pdf book [1]) it is not documented that they are inheriting from the MapCollection mixin class as well (and also it is not possible to realize that they are actually specializing the ooRexx Object class directly), same is true for all classes that inherit from more than one mixin class, e.g. the InputOutputStream mixin class being shown as a specialisation of the Object class, no information that it actually inherits in addition from the mixin class InputStream and the mixin class OutputStream itself, etc.!
This is probably owed to the fact that the author tried to have each class only once in the class hierarchy to make it easy comprehendable. Having and employing multiple inheritance, however, would probably mandate in these cases that these classes are not only showing directly underneath the subclass/mixinclass'd class, but in addition also underneath each mixin class that gets inherited. This probably will cause problems for beginners or people coming from languages that do not employ multiple-inheritance (why does a class appear more than once in a hierarchy?). Hence my attempt to "escape" this problem by depicting the class hierarchy such that each class is shown only once, directly under the class it subclasses/mixinclasses, but giving the additional information about inheritance, if employed (and which mixin classes in which sequence get inherited) via "(inherit x y)" and also which class can be used for multiple inheritance by supplying the "(mixin)" information next to those classes. If time permits, I can come up with a class tree that lists classes that employ multiple inheritance underneath each mixin class they inherit in addition, just to see the difference and guessing whether it is clearer for beginners and newcomers by comparison. Also, I could come up with additional listings in the sections that describe each class briefly that list in the case of mixin classes the classes that inherit directly from it. This way studying the brief descriptions of the classes will make the reader aware of this as well. Also this brief description of classes could get extended with the brief information like "This class is a mixinclass and it can therefore be inherited by other classes." and "This class inherits in addition from the following mixin classes: ...". However, I would only add that information if it is seen as helpful for beginners and newcomers. ---rony [1] rexxpg.pdf, ooRexx 4.2: <https://sourceforge.net/projects/oorexx/files/oorexx-docs/4.2.0/rexxpg.pdf/download> _______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel