| 
 Hosted by 
   | 
 
 
 
 
 
 
 
 
with Lists; 
with Parts; use Parts; 
with Works; use Works; 
with Identifications; use Identifications; 
 
with Strings; use Strings; 
 
package Scores is 
 
   package Part_Lists is new Lists(Part_Access); 
   subtype Part_List is Part_Lists.List; 
   subtype Part_List_Access is Part_Lists.List_Access; 
 
    
   type Score is limited private; 
 
    
   type Score_Access is access all Score; 
 
    
   function Create 
     return Score_Access;  
 
    
   procedure Set_Work 
     (This : access Score;     
      Work : in Work_Access);  
 
    
   function Get_Work 
     (This : access Score)  
     return Work_Access;    
 
    
   procedure Set_Movement_Number 
     (This            : access Score;  
      Movement_Number : in String);    
 
    
   function Get_Movement_Number 
     (This : access Score)  
     return String;         
 
    
   procedure Set_Movement_Title 
     (This           : access Score;  
      Movement_Title : in String);    
 
    
   function Get_Movement_Title 
     (This : access Score)  
     return String;         
 
    
   procedure Set_Identification 
     (This           : access Score;               
      Identification : in Identification_Access);  
 
    
   function Get_Identification 
     (This : access Score)          
     return Identification_Access;  
 
    
   function Get_Parts 
     (This : access Score)     
     return Part_List_Access;  
 
    
   procedure Add_Part 
     (This : access Score;     
      Part : in Part_Access);  
 
private 
 
    
   type Score is limited record 
      Work            : Work_Access; 
      Movement_Number : String_Access; 
      Movement_Title  : String_Access; 
      Identification  : Identification_Access; 
      Parts           : Part_List_Access; 
   end record; 
 
end Scores; 
 |