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

Reply via email to