Experimenting a little more, here is a rendering that only lists mixin subclasses if the subclasses directly specialize the mixin. This way e.g. the Array class only appears once and as a subclass to Object. Here the representation, which is more compact, yet complete:
Object Alarm AlarmNotification (mixin) ArgUtil Array (inherit OrderedCollection) Bag (inherit MapCollection, SetCollection) BagMixin Buffer Class Collection (mixin) MapCollection (mixin) OrderedCollection (mixin) SetCollection (mixin) Comparable (mixin) Comparator (mixin) CaselessColumnComparator (mixin) CaselessComparator (mixin) CaselessDescendingComparator (mixin) ColumnComparator (mixin) DescendingComparator (mixin) InvertingComparator (mixin) NumericComparator (mixin) DateTime (inherit Comparable, Orderable) Directory (inherit MapCollection) Properties EventSemaphore File (inherit Comparable, Orderable) IdentityTable (inherit MapCollection) InputOutputStream (mixin) (inherit InputStream, OutputStream) Stream (mixin) InputStream (mixin) List (inherit OrderedCollection) LocalServer ManyItemMixin Message (inherit MessageNotification, AlarmNotification) MessageNotification (mixin) Method Monitor MutableBuffer MutexSemaphore OLEObject OLEVariant Orderable (mixin) OutputStream (mixin) Package Pointer Queue (inherit OrderedCollection) CircularQueue Relation (inherit MapCollection) RexxContext RexxInfo RexxQueue Routine Set (inherit MapCollection, SetCollection) SetMixin StackFrame Stem (inherit MapCollection) String (inherit Comparable) StringTable (inherit MapCollection) Supplier StreamSupplier SupplierMixin Table (inherit MapCollection) Ticker TimeSpan (inherit Comparable, Orderable) Validate VariableReference WeakReference Here the questions again: Questions: 1. What is the purpose of the classes: BagMixin, ManyItemsMixin, SetMixin and SupplierMixin? 1. They carry the name "mixin" but are not inherited by the exposed Rexx classes. 2. They cannot be fetched via their environment name like .BagMixin. 3. Should they be listed in the class object's SUBCLASSES array at all? 2. Should the classes ArgUtil and LocalServer be documented or left out? 1. ArgUtil was never documented and supposedly Validate is the successor and should be used instead. 2. If LocalServer should get documented, where could I find the respective information? 3. Should the classes OLEObject and OLEVariant be documented or left out? (They only exist in the Windows version and are documented separately in the Windows reference book.) 4. Should the short or the long form be used, which informs about multiple inheritance related classes? 5. Should this "more compact, yet complete" class hierarchy be used? ---rony On 09.03.2020 18:11, Rony G. Flatscher wrote: > > The rexxpg book lists in "Chapter 4. The Basics of Classes" all ooRexx > classes. The listing is not > correctly indented as the root class Object is not shown as the topmost class. > > Before correcting anything I also created a little program that would create > the ooRexx class tree > automatically. > > While doing so, it would become possible to add additional information to the > listed classes, e.g. > whether a class is a mixin and for classes using multiple inheritance which > classes they inherit > (maybe in parentheses and in italic). The motivation would be to have > > So here are both renderings (there classes for which questions are formulated > at the bottom are > highlighted in red): > > Object > Alarm > AlarmNotification > Message > ArgUtil > Array > Bag > BagMixin > Buffer > Class > Collection > MapCollection > Bag > Directory > Properties > IdentityTable > Relation > Set > Stem > StringTable > Table > OrderedCollection > Array > List > Queue > CircularQueue > SetCollection > Bag > Set > Comparable > DateTime > File > String > TimeSpan > Comparator > CaselessColumnComparator > CaselessComparator > CaselessDescendingComparator > ColumnComparator > DescendingComparator > InvertingComparator > NumericComparator > DateTime > Directory > Properties > EventSemaphore > File > IdentityTable > InputOutputStream > Stream > InputStream > InputOutputStream > Stream > List > LocalServer > ManyItemMixin > Message > MessageNotification > Message > Method > Monitor > MutableBuffer > MutexSemaphore > OLEObject OLEVariant > Orderable > DateTime > File > TimeSpan > OutputStream > InputOutputStream > Stream > Package > Pointer > Queue > CircularQueue > Relation > RexxContext > RexxInfo > RexxQueue > Routine > Set > SetMixin > StackFrame > Stem > String > StringTable > Supplier > StreamSupplier > SupplierMixin > Table > Ticker > TimeSpan > Validate > VariableReference > WeakReference > > And here with the additional information: > > Object > Alarm > AlarmNotification /(mixin)/ > Message /(inherit MessageNotification, AlarmNotification)/ > ArgUtil > Array /(inherit OrderedCollection)/ > Bag /(inherit MapCollection, SetCollection)/ > BagMixin > Buffer > Class > Collection /(mixin)/ > MapCollection /(mixin)/ > Bag /(inherit MapCollection, SetCollection)/ > Directory /(inherit MapCollection)/ > Properties > IdentityTable /(inherit MapCollection)/ > Relation /(inherit MapCollection)/ > Set /(inherit MapCollection, SetCollection)/ > Stem /(inherit MapCollection)/ > StringTable /(inherit MapCollection)/ > Table /(inherit MapCollection)/ > OrderedCollection /(mixin)/ > Array /(inherit OrderedCollection)/ > List /(inherit OrderedCollection)/ > Queue /(inherit OrderedCollection)/ > CircularQueue > SetCollection /(mixin)/ > Bag /(inherit MapCollection, SetCollection)/ > Set /(inherit MapCollection, SetCollection)/ > Comparable /(mixin)/ > DateTime /(inherit Comparable, Orderable)/ > File /(inherit Comparable, Orderable)/ > String /(inherit Comparable)/ > TimeSpan /(inherit Comparable, Orderable)/ > Comparator /(mixin)/ > CaselessColumnComparator /(mixin)/ > CaselessComparator /(mixin)/ > CaselessDescendingComparator /(mixin)/ > ColumnComparator /(mixin)/ > DescendingComparator /(mixin)/ > InvertingComparator /(mixin)/ > NumericComparator /(mixin)/ > DateTime /(inherit Comparable, Orderable)/ > Directory /(inherit MapCollection)/ > Properties > EventSemaphore > File /(inherit Comparable, Orderable)/ > IdentityTable /(inherit MapCollection)/ > InputOutputStream /(mixin) (inherit InputStream, OutputStream)/ > Stream /(mixin)/ > InputStream /(mixin)/ > InputOutputStream /(mixin) (inherit InputStream, OutputStream)/ > Stream /(mixin)/ > List /(inherit OrderedCollection)/ > LocalServer > ManyItemMixin > Message /(inherit MessageNotification, AlarmNotification)/ > MessageNotification /(mixin)/ > /Message (inherit MessageNotification, AlarmNotification)/ > Method > Monitor > MutableBuffer > MutexSemaphore > OLEObject OLEVariant > Orderable /(mixin)/ > DateTime /(inherit Comparable, Orderable)/ > File /(inherit Comparable, Orderable)/ > TimeSpan /(inherit Comparable, Orderable)/ > OutputStream /(mixin)/ > InputOutputStream /(mixin) (inherit InputStream, OutputStream)/ > Stream /(mixin)/ > Package > Pointer > Queue /(inherit OrderedCollection)/ > CircularQueue > Relation /(inherit MapCollection)/ > RexxContext > RexxInfo > RexxQueue > Routine > Set /(inherit MapCollection, SetCollection)/ > SetMixin > StackFrame > Stem /(inherit MapCollection)/ > String /(inherit Comparable)/ > StringTable /(inherit MapCollection)/ > Supplier > StreamSupplier > SupplierMixin > Table /(inherit MapCollection)/ > Ticker > TimeSpan /(inherit Comparable, Orderable)/ > Validate > VariableReference > WeakReference > > Questions: > > 1. What is the purpose of the classes: BagMixin, ManyItemsMixin, SetMixin > and SupplierMixin? > 1. They carry the name "mixin" but are not inherited by the exposed Rexx > classes. > 2. They cannot be fetched via their environment name like .BagMixin. > 3. Should they be listed in the class object's SUBCLASSES array at all? > > 2. Should the classes ArgUtil and LocalServer be documented or left out? > 1. ArgUtil was never documented and supposedly Validate is the successor > and should be used > instead. > 2. If LocalServer should get documented, where could I find the > respective information? > > 3. Should the classes OLEObject and OLEVariant be documented or left out? > (They only exist in the > Windows version and are documented separately in the Windows reference > book.) > > 4. Should the short or the long form be usedj, which informs about multiple > inheritance related > classes? > > ---rony >
_______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel