|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 35054 (0x88ee)
Types: TextFile
Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
└─⟦d65440be7⟧ »DATA«
└─⟦this⟧
with Object_Set;
with Object_Subclass;
with String_Utilities;
package body Object_Info is
generic
with function Is_Desired
(This_Object : in Directory_Tools.Object.Handle)
return Boolean;
function Desired_Objects_From
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean) return Directory_Tools.Object.Iterator;
function Desired_Objects_From
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean)
return Directory_Tools.Object.Iterator is
--
All_Objects : Directory_Tools.Object.Iterator :=
Object_Info.Any.All_Objects_In (This_Object, Recursive);
--
Desired_Objects : Directory_Tools.Object.Iterator :=
Directory_Tools.Object.Create;
--
Dummy : Boolean;
--
begin
Directory_Tools.Object.Reset (All_Objects);
while (not Directory_Tools.Object.Done (All_Objects)) loop
if (Is_Desired (Directory_Tools.Object.Value (All_Objects))) then
Directory_Tools.Object.Add
(Desired_Objects,
Directory_Tools.Object.Value (All_Objects), Dummy);
end if;
Directory_Tools.Object.Next (All_Objects);
end loop;
return (Desired_Objects);
end Desired_Objects_From;
generic
with function Is_Correct_Kind
(This_Library : in Directory_Tools.Object.Handle)
return Boolean;
function Is_Enclosed
(This_Object : in Directory_Tools.Object.Handle) return Boolean;
function Is_Enclosed (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
--
-- This function finds successive enclosing libraries of the original
-- object and tests each one to determine if it is the correct kind
-- or not.
--
Current_Library : Directory_Tools.Object.Handle;
--
Result : Boolean := False;
--
begin
if (Directory_Tools.Naming.Full_Name (This_Object) = "!") then
-- Cannot be contained by anything, because already at root.
Result := False;
else
Current_Library := Directory_Tools.Traversal.
Enclosing_Library (This_Object);
loop
if (Is_Correct_Kind (Current_Library)) then
-- Found an enclosing library of the correct kind.
Result := True;
exit;
elsif (Directory_Tools.Naming.
Full_Name (Current_Library) = "!") then
-- Worked our way all the way up to the root without finding
-- an enclosing object of the correct kind.
exit;
else
-- Keep looking.
Current_Library := Directory_Tools.Traversal.
Enclosing_Library (Current_Library);
end if;
end loop;
end if;
return (Result);
end Is_Enclosed;
package body Any is
function Number_Of_Objects_In
(This_Iterator : in Directory_Tools.Object.Iterator)
return Natural is
--
The_Objects : Directory_Tools.Object.Iterator := This_Iterator;
--
Count : Natural := 0;
--
begin
Directory_Tools.Object.Reset (The_Objects);
while (not Directory_Tools.Object.Done (The_Objects)) loop
Count := Count + 1;
Directory_Tools.Object.Next (The_Objects);
end loop;
return (Count);
end Number_Of_Objects_In;
function Number_Of_Objects_Enclosed_By
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Natural is
begin
if (Recursive) then
return (Number_Of_Objects_In
(Directory_Tools.Naming.Resolution
(Directory_Tools.Naming.Full_Name (This_Object) &
".@??")));
else
return (Number_Of_Objects_In
(Directory_Tools.Naming.Resolution
(Directory_Tools.Naming.Full_Name (This_Object) &
".@")));
end if;
end Number_Of_Objects_Enclosed_By;
function Classes_Equal
(This_Object : in Directory_Tools.Object.Handle;
This_Class : in Directory_Tools.Object.Class_Enumeration)
return Boolean is
begin
return (Directory_Tools.Object.Equal
(Directory_Tools.Object.Class (This_Object),
This_Class));
end Classes_Equal;
function Subclasses_Equal
(This_Object : in Directory_Tools.Object.Handle;
This_Subclass : in Directory.Subclass) return Boolean is
--
function "=" (This_Subclass : in Directory.Subclass;
That_Subclass : in Directory.Subclass) return Boolean
renames Directory."=";
--
function "=" (This_Error_Status : in Directory.Error_Status;
That_Error_Status : in Directory.Error_Status)
return Boolean renames Directory."=";
--
The_Object : Directory.Object;
The_Subclass : Directory.Subclass;
The_Status : Directory.Error_Status;
--
begin
Directory_Tools.Object.Low_Level.Get_Object
(This_Object, The_Object, The_Status);
The_Subclass := Directory.Get_Subclass (The_Object);
return ((The_Status = Directory.Successful) and
(The_Subclass = This_Subclass));
end Subclasses_Equal;
function Is_Good (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (not Directory_Tools.Object.Is_Bad (This_Object));
end Is_Good;
function Is_Bad (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Directory_Tools.Object.Is_Bad (This_Object));
end Is_Bad;
function Is_Library (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Directory_Tools.Library_Object.Is_Library (This_Object));
end Is_Library;
function Is_Directory (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Directory_Tools.Library_Object.Is_Directory (This_Object));
end Is_Directory;
function Is_World (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Directory_Tools.Library_Object.Is_World (This_Object));
end Is_World;
function Is_Simple_World
(This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return ((Is_World (This_Object)) and
(not Is_Subsystem (This_Object)) and
(not Is_View (This_Object)));
end Is_Simple_World;
function Is_Subsystem (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return ((Subclasses_Equal
(This_Object, Object_Subclass.Subsystem_Subclass)) or
(Subclasses_Equal
(This_Object, Object_Subclass.
Spec_Load_Subsystem_Subclass)) or
(Subclasses_Equal
(This_Object, Object_Subclass.
Combined_Subsystem_Subclass)));
end Is_Subsystem;
function Is_View (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return ((Subclasses_Equal
(This_Object, Object_Subclass.Spec_View_Subclass) or
Subclasses_Equal
(This_Object, Object_Subclass.Load_View_Subclass) or
Subclasses_Equal
(This_Object, Object_Subclass.Combined_View_Subclass)));
end Is_View;
function Is_Spec_View (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Subclasses_Equal (This_Object,
Object_Subclass.Spec_View_Subclass));
end Is_Spec_View;
function Is_Load_View (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Subclasses_Equal (This_Object,
Object_Subclass.Load_View_Subclass));
end Is_Load_View;
function Is_Regular_Load_View
(This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return ((Subclasses_Equal (This_Object,
Object_Subclass.Load_View_Subclass)) and
(not Is_Coded_Load_View (This_Object)));
end Is_Regular_Load_View;
function Is_Coded_Load_View
(This_Object : in Directory_Tools.Object.Handle)
return Boolean is
--
-- Since there is no Code_View subclass, we need
-- to test for the presence or absence of a code
-- database. This kludge will hopefully go away
-- soon.
--
begin
return (Object_Info.Any.Is_Good
(Directory_Tools.Naming.Resolution
(Directory_Tools.Naming.Full_Name (This_Object) &
".CODE_DATABASE")));
end Is_Coded_Load_View;
function Is_Combined_View
(This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Subclasses_Equal (This_Object,
Object_Subclass.Combined_View_Subclass));
end Is_Combined_View;
function Is_Simple_Object
(This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return ((Is_Good (This_Object)) and
(not Is_Library (This_Object)));
end Is_Simple_Object;
function Is_Ada_Unit (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Classes_Equal (This_Object,
Directory_Tools.Object.Ada_Class));
end Is_Ada_Unit;
function Is_File (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Classes_Equal (This_Object,
Directory_Tools.Object.File_Class));
end Is_File;
function Is_Misc_Simple_Object
(This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return ((Is_Simple_Object (This_Object)) and
(not Is_Ada_Unit (This_Object)) and
(not Is_File (This_Object)));
end Is_Misc_Simple_Object;
function Is_Frozen (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Directory_Tools.Any_Object.Is_Frozen (This_Object));
end Is_Frozen;
function Contains_Libraries
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Libraries_In (This_Object, Recursive)) > 0);
end Contains_Libraries;
function Contains_Directories
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Directories_In (This_Object, Recursive)) > 0);
end Contains_Directories;
function Contains_Worlds
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Worlds_In (This_Object, Recursive)) > 0);
end Contains_Worlds;
function Contains_Simple_Worlds
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Simple_Worlds_In (This_Object, Recursive)) > 0);
end Contains_Simple_Worlds;
function Contains_Subsystems
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Subsystems_In (This_Object, Recursive)) > 0);
end Contains_Subsystems;
function Contains_Views
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Views_In (This_Object, Recursive)) > 0);
end Contains_Views;
function Contains_Spec_Views
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Spec_Views_In (This_Object, Recursive)) > 0);
end Contains_Spec_Views;
function Contains_Load_Views
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Load_Views_In (This_Object, Recursive)) > 0);
end Contains_Load_Views;
function Contains_Regular_Load_Views
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Regular_Load_Views_In (This_Object, Recursive)) > 0);
end Contains_Regular_Load_Views;
function Contains_Coded_Load_Views
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Coded_Load_Views_In (This_Object, Recursive)) > 0);
end Contains_Coded_Load_Views;
function Contains_Combined_Views
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Combined_Views_In (This_Object, Recursive)) > 0);
end Contains_Combined_Views;
function Contains_Simple_Objects
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Simple_Objects_In (This_Object, Recursive)) > 0);
end Contains_Simple_Objects;
function Contains_Ada_Units
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Ada_Units_In (This_Object, Recursive)) > 0);
end Contains_Ada_Units;
function Contains_Files
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Files_In (This_Object, Recursive)) > 0);
end Contains_Files;
function Contains_Misc_Simple_Objects
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Misc_Simple_Objects_In (This_Object, Recursive)) > 0);
end Contains_Misc_Simple_Objects;
function Contains_Frozen_Objects
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Number_Of_Objects_In
(Frozen_Objects_In (This_Object, Recursive)) > 0);
end Contains_Frozen_Objects;
function Is_Enclosed_By_Subsystem is new Is_Enclosed (Is_Subsystem);
function Is_Contained_By_Subsystem
(This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Is_Enclosed_By_Subsystem (This_Object));
end Is_Contained_By_Subsystem;
function Is_Enclosed_By_View is new Is_Enclosed (Is_View);
function Is_Contained_By_View
(This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Is_Enclosed_By_View (This_Object));
end Is_Contained_By_View;
function Is_Enclosed_By_Spec_View is new Is_Enclosed (Is_Spec_View);
function Is_Contained_By_Spec_View
(This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Is_Enclosed_By_Spec_View (This_Object));
end Is_Contained_By_Spec_View;
function Is_Enclosed_By_Load_View is new Is_Enclosed (Is_Load_View);
function Is_Contained_By_Load_View
(This_Object : in Directory_Tools.Object.Handle)
return Boolean is
begin
return (Is_Enclosed_By_Load_View (This_Object));
end Is_Contained_By_Load_View;
function Is_Contained_By_Units_Directory_Of_View
(This_Object : in Directory_Tools.Object.Handle)
return Boolean is
--
Current_Library : Directory_Tools.Object.Handle := This_Object;
--
Result : Boolean := False;
--
begin
if (Is_Contained_By_View (This_Object)) then
loop
Current_Library :=
Directory_Tools.Traversal.Enclosing_Library
(Current_Library);
if (Is_View (Current_Library)) then
-- Found the enclosing view. Now look for the object
-- in the units directory of the enclosing view.
if (Directory_Tools.Object.Has
(Directory_Tools.Naming.Resolution
(Directory_Tools.Naming.Full_Name
(Current_Library) & ".UNITS.@??"),
This_Object)) then
Result := True;
else
Result := False;
end if;
exit;
end if;
end loop;
end if;
return (Result);
end Is_Contained_By_Units_Directory_Of_View;
function All_Objects_In (This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
if (Recursive) then
return (Directory_Tools.Naming.Resolution
(Directory_Tools.Naming.Full_Name (This_Object) &
".@??"));
else
return (Directory_Tools.Naming.Resolution
(Directory_Tools.Naming.Full_Name (This_Object) &
".@"));
end if;
end All_Objects_In;
function Libraries is new Desired_Objects_From (Is_Library);
function Libraries_In (This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Libraries (This_Object, Recursive));
end Libraries_In;
function Directories is new Desired_Objects_From (Is_Directory);
function Directories_In (This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Directories (This_Object, Recursive));
end Directories_In;
function Worlds is new Desired_Objects_From (Is_World);
function Worlds_In (This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Worlds (This_Object, Recursive));
end Worlds_In;
function Simple_Worlds is new Desired_Objects_From (Is_Simple_World);
function Simple_Worlds_In (This_Object : in
Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Simple_Worlds (This_Object, Recursive));
end Simple_Worlds_In;
function Subsystems is new Desired_Objects_From (Is_Subsystem);
function Subsystems_In (This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Subsystems (This_Object, Recursive));
end Subsystems_In;
function Views is new Desired_Objects_From (Is_View);
function Views_In (This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Views (This_Object, Recursive));
end Views_In;
function Spec_Views is new Desired_Objects_From (Is_Spec_View);
function Spec_Views_In (This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Spec_Views (This_Object, Recursive));
end Spec_Views_In;
function Load_Views is new Desired_Objects_From (Is_Load_View);
function Load_Views_In (This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Load_Views (This_Object, Recursive));
end Load_Views_In;
function Regular_Load_Views is
new Desired_Objects_From (Is_Regular_Load_View);
function Regular_Load_Views_In
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Regular_Load_Views (This_Object, Recursive));
end Regular_Load_Views_In;
function Coded_Load_Views is
new Desired_Objects_From (Is_Coded_Load_View);
function Coded_Load_Views_In (This_Object : in
Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Coded_Load_Views (This_Object, Recursive));
end Coded_Load_Views_In;
function Combined_Views is new Desired_Objects_From (Is_Combined_View);
function Combined_Views_In (This_Object : in
Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Combined_Views (This_Object, Recursive));
end Combined_Views_In;
function Simple_Objects is new Desired_Objects_From (Is_Simple_Object);
function Simple_Objects_In (This_Object : in
Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Simple_Objects (This_Object, Recursive));
end Simple_Objects_In;
function Ada_Units is new Desired_Objects_From (Is_Ada_Unit);
function Ada_Units_In (This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Ada_Units (This_Object, Recursive));
end Ada_Units_In;
function Files is new Desired_Objects_From (Is_File);
function Files_In (This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Files (This_Object, Recursive));
end Files_In;
function Misc_Simple_Objects is
new Desired_Objects_From (Is_Misc_Simple_Object);
function Misc_Simple_Objects_In
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Misc_Simple_Objects (This_Object, Recursive));
end Misc_Simple_Objects_In;
function Frozen_Objects is new Desired_Objects_From (Is_Frozen);
function Frozen_Objects_In (This_Object : in
Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Frozen_Objects (This_Object, Recursive));
end Frozen_Objects_In;
end Any;
package body Cmvc is
function Models_Equal
(This_View : in Directory_Tools.Object.Handle;
This_Model : in String := "!MODEL.R1000") return Boolean is
--
-- By a series of transformations, we convert the Directory_Tools.
-- Object.Handle for the view into an Object_Set.Iterator. Then we
-- iterate over the contents of the set, comparing the name of each
-- object in the set to the name of the model world until a match is
-- found or the iterator is done.
--
function "=" (This_Error_Status : in Directory.Error_Status;
That_Error_Status : in Directory.Error_Status)
return Boolean renames Directory."=";
--
function "=" (This_Error_Status : in Directory.Naming.Name_Status;
That_Error_Status : in Directory.Naming.Name_Status)
return Boolean renames Directory.Naming."=";
--
Model_World : Directory_Tools.Object.Handle :=
Directory_Tools.Naming.Resolution (This_Model);
--
Model_Name : constant String :=
String_Utilities.Upper_Case
(Directory_Tools.Naming.Full_Name (Model_World));
--
Object_Set_Name : constant String :=
Directory_Tools.Naming.Full_Name (This_View) & ".STATE.MODEL";
--
Object_Set_Object : Directory.Object;
--
The_Object_Set : Object_Set.Set;
--
Object_Iterator : Object_Set.Iterator;
--
Error_Status : Directory.Error_Status;
Name_Status : Directory.Naming.Name_Status;
--
Result : Boolean := False;
--
begin
if ((Object_Info.Any.Is_Good (This_View)) and
(Object_Info.Any.Is_Good (Model_World))) then
Directory.Naming.Resolve (Object_Set_Name,
Object_Set_Object, Name_Status);
if (Name_Status = Directory.Naming.Successful) then
Object_Set.Open (Object_Set_Object,
The_Object_Set, Error_Status);
if (Error_Status = Directory.Successful) then
Object_Set.Init (Object_Iterator, The_Object_Set);
while (not Object_Set.Done (Object_Iterator)) loop
declare
Object : Directory.Object :=
Object_Set.Value (Object_Iterator);
Object_Name : constant String :=
String_Utilities.Upper_Case
(Directory.Naming.Get_Full_Name (Object));
begin
if (Object_Name = Model_Name) then
-- Models are the same.
Result := True;
exit;
end if;
end;
Object_Set.Next (Object_Iterator);
end loop;
end if;
end if;
end if;
Object_Set.Close (The_Set => The_Object_Set,
Status => Error_Status);
return (Result);
exception
when others =>
return (False);
end Models_Equal;
function Is_Controlled (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
--
function "=" (This_Error_Status : in Directory.Error_Status;
That_Error_Status : in Directory.Error_Status)
return Boolean renames Directory."=";
--
The_Object : Directory.Object;
The_Status : Directory.Error_Status;
--
Object_Is_Controlled : Boolean := False;
--
begin
Directory_Tools.Object.Low_Level.Get_Object
(This_Object, The_Object, The_Status);
Directory.Object_Operations.Is_Controlled
(The_Object, Object_Is_Controlled, The_Status);
return ((The_Status = Directory.Successful) and
(Object_Is_Controlled));
end Is_Controlled;
function Is_Checked_Out (This_Object : in Directory_Tools.Object.Handle)
return Boolean is
--
function "=" (This_Error_Status : in Directory.Error_Status;
That_Error_Status : in Directory.Error_Status)
return Boolean renames Directory."=";
--
The_Object : Directory.Object;
The_Status : Directory.Error_Status;
--
Object_Is_Checked_In : Boolean;
--
begin
Directory_Tools.Object.Low_Level.Get_Object
(This_Object, The_Object, The_Status);
Directory.Object_Operations.Is_Slushy
(The_Object, Object_Is_Checked_In, The_Status);
return ((The_Status = Directory.Successful) and
(not Object_Info.Any.Is_Library (This_Object)) and
(Is_Controlled (This_Object)) and
(not Object_Is_Checked_In));
end Is_Checked_Out;
function Contains_Controlled_Objects
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Object_Info.Any.Number_Of_Objects_In
(Controlled_Objects_In (This_Object, Recursive)) > 0);
end Contains_Controlled_Objects;
function Contains_Checked_Out_Objects
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True) return Boolean is
begin
return (Object_Info.Any.Number_Of_Objects_In
(Checked_Out_Objects_In (This_Object, Recursive)) > 0);
end Contains_Checked_Out_Objects;
function Controlled_Objects is new Desired_Objects_From (Is_Controlled);
function Controlled_Objects_In
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Controlled_Objects (This_Object, Recursive));
end Controlled_Objects_In;
function Checked_Out_Objects is
new Desired_Objects_From (Is_Checked_Out);
function Checked_Out_Objects_In
(This_Object : in Directory_Tools.Object.Handle;
Recursive : in Boolean := True)
return Directory_Tools.Object.Iterator is
begin
return (Checked_Out_Objects (This_Object, Recursive));
end Checked_Out_Objects_In;
end Cmvc;
end Object_Info;