DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦c40a405e5⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, procedure Add_Object_Hyper_Table, seg_004587

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



--| @SUMMARY The procedure will traverse a set of objects and their children
--| by build an abstract document table of objects that meet some criteria.
--|
--| @DESCRIPTION This procedure traverses the entire set of objects in all
--| units specified by the Units parameter.  Based on the feedback from the
--| formal function parameter Included_Object, a row is included in a table.
--| For each column (designated by an enumeration type), an image, explanation,
--| and linkage is requested from the instantiator.
--|
--| if Include_Object (The_Object) then
--|     for C in Columns loop
--|
--|         Linkage (For_Column   => C,
--|                  For_Object   => My_Object,
--|                  Linkage      => Linkage_Object,
--|                  Linkage_List => Linkage_Objects);
--|
--|         Table.Item (Image (C, My_Object),
--|                     Object_Linkage      => Linkage_Object,
--|                     Object_Linkage_List => Linkage_Objects,
--|                     Explanation         => Explanation (C, My_Object));
--|     end loop;
--| end if;
--|
--| After each object is analyze the instantiator is queried to determine in
--| traversal should continue with any child objects:
--|
--| if Continue_Traversal (My_Object) then
--|     Control := Traversal.Continue;
--| else
--|     Control := Traversal.Skip_Children;
--| end if;
--|
--| Once all elements are traversed and the table completed, it is sorted in
--| left to right column order.  The table is then appended to an existing
--| (open) document handle.
--|
--| @INDICES (DIRECTORY_TRAVERSAL, HYPER_TEXT)
with Directory_Tools;
with Abstract_Document;
generic
    --| @DESCRIPTION Determines whether to include a row in the table for
    --| the current object
    with function Include_Object
                     (Obj : Directory_Tools.Object.Handle) return Boolean;

    --| @DESCRIPTION Determines whether to continue traversal to child objects
    with function Continue_Traversal
                     (For_Object : Directory_Tools.Object.Handle)
                     return Boolean;

    --| @DESCRIPTION Defines the list of columns. The name of the column is
    --| the image of the enumeration value.  Data is sorted in left to right
    --| column order.
    type Columns is (<>);

    --| @DESCRIPTION Defines if the data in the column is integer values.
    --| If this is so it will be sorted by its integer magnitude, not by
    --| its string image.
    with function Is_Integer_Valued (C : Columns) return Boolean;

    --| @DESCRIPTION Provides the image of each column of the table row for
    --| the current object
    with function Image
                     (For_Column : Columns;  
                      For_Object : Directory_Tools.Object.Handle) return String;

    --| @DESCRIPTION Provides explanation text for each column of the table
    --| row for the current object.  This text is displayed when the user
    --| presses the Explain key.
    with function Explanation
                     (For_Column : Columns;  
                      For_Object : Directory_Tools.Object.Handle) return String;

    --| @DESCRIPTION Provides an object or list of object that the column
    --| is "linked" to.  If the user presses the Definition key on the column
    --| the editor will traverse to this object or generate a menu of
    --| objects.
    with procedure Linkage (For_Column   :     Columns;
                            For_Object   :     Directory_Tools.Object.Handle;
                            Linkage      : out Directory_Tools.Object.Handle;
                            Linkage_List : out Directory_Tools.Object.Iterator);

    --| @DESCRIPTION Defines the title of the table placed in the
    --| abstract document.
    Table_Title : String := "";

procedure Add_Object_Hyper_Table
             (Units       : in out Directory_Tools.Object.Iterator;
              To_Document : in out Abstract_Document.Handle;
              Response    :        String := "<PROFILE>");

E3 Meta Data

    nblk1=5
    nid=0
    hdr6=a
        [0x00] rec0=16 rec1=00 rec2=01 rec3=00c
        [0x01] rec0=1a rec1=00 rec2=02 rec3=09c
        [0x02] rec0=16 rec1=00 rec2=03 rec3=07a
        [0x03] rec0=15 rec1=00 rec2=04 rec3=016
        [0x04] rec0=02 rec1=00 rec2=05 rec3=000
    tail 0x217002096815c6507177f 0x42a00088462061e03