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

⟦60bbdf6db⟧ Ada Source

    Length: 58368 (0xe400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body The_Contrats, seg_05593f, seg_055963

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



with Text_Manager, String_Utilities, Bounded_String;
package body The_Contrats is

    procedure Create_Set (The_Contrat : in out Set_Of_Objects.Set) is
    begin
        The_Contrat := Create_A_Set_Of_Objects;
    end Create_Set;

    procedure Init (The_Contrat_Iterator : in out Contrat_Iterator;
                    The_Contrat_Array : Contrat_Array) is
    begin
        The_Contrat_Iterator.Index := Contrat_Array'First;
        The_Contrat_Iterator.Data := The_Contrat_Array;
    end Init;

    function Done (The_Contrat_Iterator : Contrat_Iterator) return Boolean is
    begin
        return not ((The_Contrat_Iterator.Index in Contrat_Array'Range) and
                    (The_Contrat_Iterator.Data (The_Contrat_Iterator.Index).
                     Presence = True));
    end Done;

    procedure Next (The_Contrat_Iterator : in out Contrat_Iterator) is
    begin
        The_Contrat_Iterator.Index := The_Contrat_Iterator.Index + 1;
    end Next;

    function Value (The_Contrat_Iterator : Contrat_Iterator) return Contrat is
        Temp : Contrat;
    begin
        Temp.Class_Name := The_Contrat_Iterator.Data
                              (The_Contrat_Iterator.Index).
                           The_Contrat.Class_Name;
        Temp.Object_Name := The_Contrat_Iterator.Data
                               (The_Contrat_Iterator.Index).
                            The_Contrat.Object_Name;
        Temp.Method_Name := The_Contrat_Iterator.Data
                               (The_Contrat_Iterator.Index).
                            The_Contrat.Method_Name;
        Temp.Parameter := The_Contrat_Iterator.Data
                             (The_Contrat_Iterator.Index).The_Contrat.Parameter;
        Temp.Number := The_Contrat_Iterator.Data (The_Contrat_Iterator.Index).
                          The_Contrat.Number;
        return Temp;
    end Value;

    procedure Extract_All_Methods (The_Contrat : in Set_Of_Objects.Set;
                                   From_This_Class : Com_Defs.V_String;
                                   With_This_Object_Name : Com_Defs.V_String;
                                   Response_In : in out Contrat_Array) is

        I : Set_Of_Objects.Iterator;
        J : Set_Method.Set_Of_Methods.Iterator;
        Temp : T_Object;
        M : Set_Method.T_Method.Method;
        Response : Boolean := False;
        Index : Positive := Contrat_Array'First;
    begin  
        Set_Of_Objects.Init (Iter => I, S => The_Contrat);
        while (Index in Contrat_Array'Range and
               not Set_Of_Objects.Done (I)) loop
            Temp := Set_Of_Objects.Value (I);
            if String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Class)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (From_This_Class)),
                   Ignore_Case => True) and then
               String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Object)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Object_Name)),
                   Ignore_Case => True) then
                Set_Method.Set_Of_Methods.Init
                   (Iter => J, S => Temp.The_Method);
                while (Index in Contrat_Array'Range and
                       not Set_Method.Set_Of_Methods.Done (Iter => J)) loop
                    M := Set_Method.Set_Of_Methods.Value (Iter => J);
                    Response_In (Index).Presence := True;
                    Response_In (Index).The_Contrat.Method_Name := M.Name;
                    Response_In (Index).The_Contrat.Parameter := M.Parameter;
                    Response_In (Index).The_Contrat.Number := M.Number;
                    Response_In (Index).The_Contrat.Class_Name := Temp.Class;
                    Response_In (Index).The_Contrat.Object_Name := Temp.Object;
                    Index := Index + 1;
                    Set_Method.Set_Of_Methods.Next (Iter => J);
                end loop;
            end if;
            Set_Of_Objects.Next (I);
        end loop;
    end Extract_All_Methods;
-- ****************************************************************************
    procedure Extract_All_Objects (The_Contrat : in Set_Of_Objects.Set;
                                   With_This_Name_Class : Com_Defs.V_String;
                                   Response_In : in out Contrat_Array) is
    begin
        [statement]
    end Extract_All_Objects;

-- ****************************************************************************

    function Create_A_Set_Of_Objects return Set_Of_Objects.Set is
        A_New_Set : Set_Of_Objects.Set;
    begin
        Set_Of_Objects.Initialize (S => A_New_Set);
        return A_New_Set;
    end Create_A_Set_Of_Objects;

-- ****************************************************************************

    procedure Add_A_Contrat
                 (The_Contrat : in out Set_Of_Objects.Set;
                  With_This_Class_Name : Com_Defs.V_String;
                  With_This_Object_Name : Com_Defs.V_String;
                  With_This_Method_Name : Com_Defs.V_String;
                  With_This_Parameter : Com_Defs.V_String;
                  With_This_Number : Com_Defs.V_String;
                  With_This_Adress : All_String.
                                        Adress_String_And_Apply_Number) is
        A_Object : T_Object;
        A_Method : Set_Method.T_Method.Method;
    begin
        A_Object.Class := With_This_Class_Name;
        A_Object.Object := With_This_Object_Name;
        A_Object.Address := With_This_Adress;
        Set_Method.T_Method.Initialize (This_Method => A_Method,
                                        Name => With_This_Method_Name,
                                        Parameter => With_This_Parameter,
                                        Number => With_This_Number);
        Set_Method.Add (This_Method => A_Method,
                        In_This_Set => A_Object.The_Method);
        Set_Of_Objects.Add (S => The_Contrat, X => A_Object);
    end Add_A_Contrat;

-- ****************************************************************************

    procedure Add_A_Method (The_Contrat : in out Set_Of_Objects.Set;
                            To_This_Class : Com_Defs.V_String;
                            To_This_Object_Name : Com_Defs.V_String;
                            Which_Has_This_Adress :
                               All_String.Adress_String_And_Apply_Number;
                            This_Method_Name : Com_Defs.V_String;
                            With_This_Parameter : Com_Defs.V_String;
                            And_This_Number : Com_Defs.V_String) is
        I : Set_Of_Objects.Iterator;
        Temp : T_Object;
        M : Set_Method.T_Method.Method;
    begin  
        Set_Method.T_Method.Initialize (This_Method => M,
                                        Name => This_Method_Name,
                                        Parameter => With_This_Parameter,
                                        Number => And_This_Number);
        Set_Of_Objects.Init (Iter => I, S => The_Contrat);
        while not Set_Of_Objects.Done (I) loop
            Temp := Set_Of_Objects.Value (I);
            if String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Class)),
                   Str2 => Bounded_String.Image
                              (Bounded_String.Variable_String (To_This_Class)),
                   Ignore_Case => True) and then
               String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Object)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (To_This_Object_Name)),
                   Ignore_Case => True) and then
               String_Utilities.Equal (Str1 => Temp.Address,
                                       Str2 => Which_Has_This_Adress,
                                       Ignore_Case => True) then
                if not (Set_Method.Find (This_Method => M,
                                         In_This_Set => Temp.The_Method)) then
                    Set_Of_Objects.Delete (S => The_Contrat, X => Temp);
                    Set_Method.Add (This_Method => M,
                                    In_This_Set => Temp.The_Method);  
                    Set_Of_Objects.Add (S => The_Contrat, X => Temp);
                end if;
            end if;
            Set_Of_Objects.Next (Iter => I);
        end loop;
    end Add_A_Method;

-- ****************************************************************************

    procedure Delete_A_Contrat
                 (The_Contrat : in out Set_Of_Objects.Set;
                  With_This_Class_Name : Com_Defs.V_String;
                  With_This_Object_Name : Com_Defs.V_String;
                  Which_Has_This_Adress : All_String.
                                             Adress_String_And_Apply_Number) is
        I : Set_Of_Objects.Iterator;
        Temp : T_Object;
    begin
        Set_Of_Objects.Init (Iter => I, S => The_Contrat);
        while not Set_Of_Objects.Done (I) loop
            Temp := Set_Of_Objects.Value (I);
            if String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Class)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Class_Name)),
                   Ignore_Case => True) and then
               String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Object)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Object_Name)),
                   Ignore_Case => True) and then
               String_Utilities.Equal (Str1 => Temp.Address,
                                       Str2 => Which_Has_This_Adress,
                                       Ignore_Case => True) then
                Set_Of_Objects.Delete (S => The_Contrat, X => Temp);
            end if;  
            Set_Of_Objects.Next (I);
        end loop;
    end Delete_A_Contrat;

-- ****************************************************************************

    procedure Extract_The_Adress
                 (The_Contrat : in Set_Of_Objects.Set;
                  From_This_Class : Com_Defs.V_String;
                  With_This_Object_Name : Com_Defs.V_String;
                  With_This_Method_Name : Com_Defs.V_String;
                  With_This_Parameter : Com_Defs.V_String;
                  With_This_Number : Com_Defs.V_String;
                  Response_In : in out All_String.
                                          Adress_String_And_Apply_Number) is

        I : Set_Of_Objects.Iterator;
        Temp : T_Object;  
        Oust : Boolean := False;  
        M : Set_Method.T_Method.Method;
    begin  
        Set_Method.T_Method.Initialize (This_Method => M,
                                        Name => With_This_Method_Name,
                                        Parameter => With_This_Parameter,
                                        Number => With_This_Number);
        Set_Of_Objects.Init (Iter => I, S => The_Contrat);
        while (not Oust and not Set_Of_Objects.Done (I)) loop
            Temp := Set_Of_Objects.Value (I);
            if String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Class)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (From_This_Class)),
                   Ignore_Case => True) and then
               String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Object)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Object_Name)),
                   Ignore_Case => True) and then
               Set_Method.Find (This_Method => M,
                                In_This_Set => Temp.The_Method) then
                Response_In := Temp.Address;  
                Oust := True;
            end if;
            Set_Of_Objects.Next (I);
        end loop;
    end Extract_The_Adress;

-- ****************************************************************************

    function Find_This_Object
                (The_Contrat : in Set_Of_Objects.Set;
                 With_This_Class_Name : Com_Defs.V_String) return Boolean is
        I : Set_Of_Objects.Iterator;
        Temp : T_Object;  
        Response : Boolean := False;
    begin
        Set_Of_Objects.Init (Iter => I, S => The_Contrat);
        while not Set_Of_Objects.Done (I) loop
            Temp := Set_Of_Objects.Value (I);
            if String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Class)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Class_Name)),
                   Ignore_Case => True) then
                Response := True;
            end if;
            Set_Of_Objects.Next (I);
        end loop;
        return Response;
    end Find_This_Object;

-- ****************************************************************************

    function Find_This_Object
                (The_Contrat : in Set_Of_Objects.Set;
                 With_This_Class_Name : Com_Defs.V_String;
                 With_This_Object_Name : Com_Defs.V_String) return Boolean is
        I : Set_Of_Objects.Iterator;
        Temp : T_Object;  
        Response : Boolean := False;
    begin
        Set_Of_Objects.Init (Iter => I, S => The_Contrat);
        while not Set_Of_Objects.Done (I) loop
            Temp := Set_Of_Objects.Value (I);
            if String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Class)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Class_Name)),
                   Ignore_Case => True) and then
               String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Object)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Object_Name)),
                   Ignore_Case => True) then
                Response := True;
            end if;
            Set_Of_Objects.Next (I);
        end loop;
        return Response;
    end Find_This_Object;
-- ****************************************************************************
    function Find_This_Object
                (The_Contrat : in Set_Of_Objects.Set;
                 With_This_Name_Class : Com_Defs.V_String;
                 With_This_Object_Name : Com_Defs.V_String;
                 With_This_Method_Name : Com_Defs.V_String) return Boolean is
        I : Set_Of_Objects.Iterator;
        Temp : T_Object;  
        Response : Boolean := False;
    begin
        Set_Of_Objects.Init (Iter => I, S => The_Contrat);
        while not Set_Of_Objects.Done (I) loop
            Temp := Set_Of_Objects.Value (I);
            if String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Class)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Name_Class)),
                   Ignore_Case => True) and then
               String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Object)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Object_Name)),
                   Ignore_Case => True) then
                Response := Response or else
                               Set_Method.Find (This_Method_Name =>
                                                   With_This_Method_Name,
                                                In_This_Set => Temp.The_Method);
            end if;
            Set_Of_Objects.Next (I);
        end loop;
        return Response;
    end Find_This_Object;
-- ****************************************************************************
    function Find_This_Object
                (The_Contrat : in Set_Of_Objects.Set;
                 With_This_Name_Class : Com_Defs.V_String;
                 With_This_Object_Name : Com_Defs.V_String;
                 With_This_Method_Name : Com_Defs.V_String;
                 With_This_Parameter : Com_Defs.V_String;
                 With_This_Number : Com_Defs.V_String) return Boolean is  
        I : Set_Of_Objects.Iterator;
        Temp : T_Object;  
        Response : Boolean := False;  
        M : Set_Method.T_Method.Method;
    begin  
        Set_Method.T_Method.Initialize (This_Method => M,
                                        Name => With_This_Method_Name,
                                        Parameter => With_This_Parameter,
                                        Number => With_This_Number);
        Set_Of_Objects.Init (Iter => I, S => The_Contrat);
        while not Set_Of_Objects.Done (I) loop
            Temp := Set_Of_Objects.Value (I);
            if String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Class)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Name_Class)),
                   Ignore_Case => True) and then
               String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Object)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Object_Name)),
                   Ignore_Case => True) then
                Response := Response or else
                               Set_Method.Find (This_Method => M,
                                                In_This_Set => Temp.The_Method);
            end if;
            Set_Of_Objects.Next (I);
        end loop;
        return Response;
    end Find_This_Object;
-- ****************************************************************************
    procedure Mark_As_Lost (The_Contrat : in out Set_Of_Objects.Set;
                            With_This_Name_Class : Com_Defs.V_String;
                            With_This_Object_Name : Com_Defs.V_String;
                            With_This_Method_Name : Com_Defs.V_String;
                            With_This_Parameter : Com_Defs.V_String;
                            With_This_Number : Com_Defs.V_String) is
        I : Set_Of_Objects.Iterator;
        Temp : T_Object;  
        Response : Boolean := False;  
        M : Set_Method.T_Method.Method;
    begin  
        Set_Method.T_Method.Initialize (This_Method => M,
                                        Name => With_This_Method_Name,
                                        Parameter => With_This_Parameter,
                                        Number => With_This_Number);
        Set_Of_Objects.Init (Iter => I, S => The_Contrat);
        while not Set_Of_Objects.Done (I) loop
            Temp := Set_Of_Objects.Value (I);
            if String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Class)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Name_Class)),
                   Ignore_Case => True) and then
               String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Object)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Object_Name)),
                   Ignore_Case => True) then
                Set_Of_Objects.Delete (The_Contrat, Temp);
                Set_Method.Mark_As_Lost (This_Method => M,
                                         In_This_Set => Temp.The_Method);
                Set_Of_Objects.Add (The_Contrat, Temp);
            end if;
            Set_Of_Objects.Next (I);
        end loop;
    end Mark_As_Lost;
-- ****************************************************************************
    procedure Unmark_As_Lost (The_Contrat : in out Set_Of_Objects.Set;
                              With_This_Name_Class : Com_Defs.V_String;
                              With_This_Object_Name : Com_Defs.V_String;
                              With_This_Method_Name : Com_Defs.V_String;
                              With_This_Parameter : Com_Defs.V_String;
                              With_This_Number : Com_Defs.V_String) is
        I : Set_Of_Objects.Iterator;
        Temp : T_Object;  
        Response : Boolean := False;  
        M : Set_Method.T_Method.Method;
    begin  
        Set_Method.T_Method.Initialize (This_Method => M,
                                        Name => With_This_Method_Name,
                                        Parameter => With_This_Parameter,
                                        Number => With_This_Number);
        Set_Of_Objects.Init (Iter => I, S => The_Contrat);
        while not Set_Of_Objects.Done (I) loop
            Temp := Set_Of_Objects.Value (I);
            if String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Class)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Name_Class)),
                   Ignore_Case => True) and then
               String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Object)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Object_Name)),
                   Ignore_Case => True) then
                Set_Of_Objects.Delete (The_Contrat, Temp);
                Set_Method.Unmark_As_Lost (This_Method => M,
                                           In_This_Set => Temp.The_Method);
                Set_Of_Objects.Add (The_Contrat, Temp);
            end if;
            Set_Of_Objects.Next (I);
        end loop;
    end Unmark_As_Lost;
-- ****************************************************************************
    procedure Mark_As_Used (The_Contrat : in out Set_Of_Objects.Set;
                            With_This_Name_Class : Com_Defs.V_String;
                            With_This_Object_Name : Com_Defs.V_String;
                            With_This_Method_Name : Com_Defs.V_String;
                            With_This_Parameter : Com_Defs.V_String;
                            With_This_Number : Com_Defs.V_String) is
        I : Set_Of_Objects.Iterator;
        Temp : T_Object;  
        Response : Boolean := False;  
        M : Set_Method.T_Method.Method;
    begin  
        Set_Method.T_Method.Initialize (This_Method => M,
                                        Name => With_This_Method_Name,
                                        Parameter => With_This_Parameter,
                                        Number => With_This_Number);
        Set_Of_Objects.Init (Iter => I, S => The_Contrat);
        while not Set_Of_Objects.Done (I) loop
            Temp := Set_Of_Objects.Value (I);
            if String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Class)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Name_Class)),
                   Ignore_Case => True) and then
               String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Object)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Object_Name)),
                   Ignore_Case => True) then
                Set_Of_Objects.Delete (The_Contrat, Temp);
                Set_Method.Mark_As_Used (This_Method => M,
                                         In_This_Set => Temp.The_Method);
                Set_Of_Objects.Add (The_Contrat, Temp);
            end if;
            Set_Of_Objects.Next (I);
        end loop;
    end Mark_As_Used;
-- ****************************************************************************
    procedure Unmark_As_Used (The_Contrat : in out Set_Of_Objects.Set;
                              With_This_Name_Class : Com_Defs.V_String;
                              With_This_Object_Name : Com_Defs.V_String;
                              With_This_Method_Name : Com_Defs.V_String;
                              With_This_Parameter : Com_Defs.V_String;
                              With_This_Number : Com_Defs.V_String) is
        I : Set_Of_Objects.Iterator;
        Temp : T_Object;  
        Response : Boolean := False;  
        M : Set_Method.T_Method.Method;
    begin  
        Set_Method.T_Method.Initialize (This_Method => M,
                                        Name => With_This_Method_Name,
                                        Parameter => With_This_Parameter,
                                        Number => With_This_Number);
        Set_Of_Objects.Init (Iter => I, S => The_Contrat);
        while not Set_Of_Objects.Done (I) loop
            Temp := Set_Of_Objects.Value (I);
            if String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Class)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Name_Class)),
                   Ignore_Case => True) and then
               String_Utilities.Equal
                  (Str1 => Bounded_String.Image
                              (Bounded_String.Variable_String (Temp.Object)),
                   Str2 => Bounded_String.Image (Bounded_String.Variable_String
                                                    (With_This_Object_Name)),
                   Ignore_Case => True) then
                Set_Of_Objects.Delete (The_Contrat, Temp);
                Set_Method.Unmark_As_Used (This_Method => M,
                                           In_This_Set => Temp.The_Method);
                Set_Of_Objects.Add (The_Contrat, Temp);
            end if;
            Set_Of_Objects.Next (I);
        end loop;
    end Unmark_As_Used;

    procedure Print (The_Contrat : in Set_Of_Objects.Set) is
        I : Set_Of_Objects.Iterator;
        Temp : T_Object;
    begin
        Set_Of_Objects.Init (I, The_Contrat);
        while not Set_Of_Objects.Done (I) loop
            Temp := Set_Of_Objects.Value (I);
            Text_Manager.Text.Put_Line
               ("class : " & Bounded_String.Image
                                (Bounded_String.Variable_String (Temp.Class)));
            Text_Manager.Text.Put_Line
               ("object : " & Bounded_String.Image
                                 (Bounded_String.Variable_String
                                     (Temp.Object)));
            Text_Manager.Text.Put_Line ("adress : " & Temp.Address);
            Set_Method.Print (Temp.The_Method);
            Set_Of_Objects.Next (I);
        end loop;
    end Print;


end The_Contrats;

E3 Meta Data

    nblk1=38
    nid=35
    hdr6=3e
        [0x00] rec0=1c rec1=00 rec2=01 rec3=000
        [0x01] rec0=01 rec1=00 rec2=32 rec3=060
        [0x02] rec0=14 rec1=00 rec2=02 rec3=05a
        [0x03] rec0=14 rec1=00 rec2=03 rec3=040
        [0x04] rec0=10 rec1=00 rec2=04 rec3=01e
        [0x05] rec0=16 rec1=00 rec2=05 rec3=042
        [0x06] rec0=16 rec1=00 rec2=06 rec3=014
        [0x07] rec0=11 rec1=00 rec2=07 rec3=050
        [0x08] rec0=13 rec1=00 rec2=08 rec3=052
        [0x09] rec0=11 rec1=00 rec2=09 rec3=004
        [0x0a] rec0=15 rec1=00 rec2=0a rec3=056
        [0x0b] rec0=13 rec1=00 rec2=20 rec3=040
        [0x0c] rec0=14 rec1=00 rec2=0c rec3=02a
        [0x0d] rec0=10 rec1=00 rec2=0d rec3=058
        [0x0e] rec0=13 rec1=00 rec2=0e rec3=04a
        [0x0f] rec0=18 rec1=00 rec2=0f rec3=016
        [0x10] rec0=13 rec1=00 rec2=10 rec3=032
        [0x11] rec0=13 rec1=00 rec2=11 rec3=04a
        [0x12] rec0=13 rec1=00 rec2=12 rec3=054
        [0x13] rec0=13 rec1=00 rec2=13 rec3=058
        [0x14] rec0=12 rec1=00 rec2=14 rec3=072
        [0x15] rec0=12 rec1=00 rec2=15 rec3=00c
        [0x16] rec0=10 rec1=00 rec2=16 rec3=022
        [0x17] rec0=13 rec1=00 rec2=17 rec3=060
        [0x18] rec0=10 rec1=00 rec2=18 rec3=058
        [0x19] rec0=13 rec1=00 rec2=19 rec3=038
        [0x1a] rec0=11 rec1=00 rec2=1a rec3=09a
        [0x1b] rec0=11 rec1=00 rec2=1b rec3=088
        [0x1c] rec0=13 rec1=00 rec2=1c rec3=00c
        [0x1d] rec0=15 rec1=00 rec2=1d rec3=044
        [0x1e] rec0=11 rec1=00 rec2=1e rec3=000
        [0x1f] rec0=11 rec1=00 rec2=07 rec3=050
        [0x20] rec0=13 rec1=00 rec2=08 rec3=052
        [0x21] rec0=11 rec1=00 rec2=09 rec3=004
        [0x22] rec0=15 rec1=00 rec2=0a rec3=056
        [0x23] rec0=13 rec1=00 rec2=20 rec3=040
        [0x24] rec0=14 rec1=00 rec2=0c rec3=02a
        [0x25] rec0=10 rec1=00 rec2=0d rec3=058
        [0x26] rec0=13 rec1=00 rec2=0e rec3=04a
        [0x27] rec0=18 rec1=00 rec2=0f rec3=016
        [0x28] rec0=13 rec1=00 rec2=10 rec3=032
        [0x29] rec0=13 rec1=00 rec2=11 rec3=04a
        [0x2a] rec0=13 rec1=00 rec2=12 rec3=054
        [0x2b] rec0=13 rec1=00 rec2=13 rec3=058
        [0x2c] rec0=12 rec1=00 rec2=14 rec3=072
        [0x2d] rec0=12 rec1=00 rec2=15 rec3=00c
        [0x2e] rec0=10 rec1=00 rec2=16 rec3=022
        [0x2f] rec0=13 rec1=00 rec2=17 rec3=060
        [0x30] rec0=10 rec1=00 rec2=18 rec3=058
        [0x31] rec0=13 rec1=00 rec2=19 rec3=038
        [0x32] rec0=11 rec1=00 rec2=1a rec3=09a
        [0x33] rec0=11 rec1=00 rec2=1b rec3=088
        [0x34] rec0=13 rec1=00 rec2=1c rec3=00c
        [0x35] rec0=15 rec1=00 rec2=1d rec3=044
        [0x36] rec0=11 rec1=00 rec2=1e rec3=000
        [0x37] rec0=01 rec1=80 rec2=01 rec3=000
    tail 0x217604a7487be6b2594c0 0x42a00088462060003
Free Block Chain:
  0x35: 0000  00 1f 03 fc 80 27 65 72 2e 54 65 78 74 2e 50 75  ┆     'er.Text.Pu┆
  0x1f: 0000  00 0b 03 fc 80 04 65 67 69 6e 04 00 30 20 20 20  ┆      egin  0   ┆
  0xb: 0000  00 21 03 fc 80 16 74 20 28 54 65 6d 70 2e 4c 6f  ┆ !    t (Temp.Lo┆
  0x21: 0000  00 22 03 fc 80 09 4e 75 6d 62 65 72 29 29 2c 09  ┆ "    Number)), ┆
  0x22: 0000  00 23 03 fc 00 3c 20 20 20 20 20 20 20 20 20 20  ┆ #   <          ┆
  0x23: 0000  00 24 03 a5 80 2a 20 20 20 53 65 74 5f 4f 66 5f  ┆ $   *   Set_Of_┆
  0x24: 0000  00 25 03 fc 80 15 20 42 6f 75 6e 64 65 64 5f 53  ┆ %     Bounded_S┆
  0x25: 0000  00 26 03 4f 80 1f 3a 20 69 6e 20 6f 75 74 20 53  ┆ & O  : in out S┆
  0x26: 0000  00 27 03 fc 80 3a 20 20 20 20 20 20 20 20 20 20  ┆ '   :          ┆
  0x27: 0000  00 28 03 fc 00 0f 20 20 20 20 20 20 20 20 62 65  ┆ (            be┆
  0x28: 0000  00 29 03 fc 80 02 65 6e 02 00 2b 20 20 20 20 20  ┆ )    en  +     ┆
  0x29: 0000  00 2a 03 fc 80 05 20 6c 6f 6f 70 05 00 31 20 20  ┆ *     loop  1  ┆
  0x2a: 0000  00 2b 03 a7 80 28 20 20 20 20 20 20 20 20 20 20  ┆ +   (          ┆
  0x2b: 0000  00 2c 03 fc 80 27 20 20 20 20 20 20 20 20 20 20  ┆ ,   '          ┆
  0x2c: 0000  00 2d 03 a7 80 1b 6e 64 65 64 5f 53 74 72 69 6e  ┆ -    nded_Strin┆
  0x2d: 0000  00 2e 03 fc 80 0c 53 74 72 69 6e 67 2e 49 6d 61  ┆ .    String.Ima┆
  0x2e: 0000  00 30 00 a9 80 18 4f 66 5f 4d 65 74 68 6f 64 73  ┆ 0    Of_Methods┆
  0x30: 0000  00 2f 03 fc 80 2d 20 20 20 20 20 20 20 20 20 20  ┆ /   -          ┆
  0x2f: 0000  00 31 03 fc 80 31 69 73 5f 53 65 74 20 3a 20 69  ┆ 1   1is_Set : i┆
  0x31: 0000  00 38 03 fc 00 00 00 00 45 20 20 20 20 20 20 20  ┆ 8      E       ┆
  0x38: 0000  00 33 00 50 80 14 69 73 5f 4d 65 74 68 6f 64 2e  ┆ 3 P  is_Method.┆
  0x33: 0000  00 34 03 fc 80 28 20 20 20 20 20 20 20 20 20 28  ┆ 4   (         (┆
  0x34: 0000  00 37 03 fc 80 1b 31 20 2e 2e 20 35 29 20 6f 66  ┆ 7    1 .. 5) of┆
  0x37: 0000  00 36 00 27 00 24 20 20 20 20 20 20 20 20 74 79  ┆ 6 ' $        ty┆
  0x36: 0000  00 00 00 f0 80 07 64 20 44 6f 6e 65 3b 07 00 00  ┆      d Done;   ┆