-- $Date: 2004/03/08 11:05:10 $
-- $Revision: 1.20 $
-- $Author: jcrocholl $
-- $Hash: f41bbb3d6e4be3d53a8c4edb034de8d3 $

-- This file was automatically created with ado.php.
-- Manual changes will be lost when it is updated.

package body Scores is

   -- Constructor for instances.
   function Create
     return Score_Access -- The newly created score.
   is
      Result : Score_Access := new Score;
   begin
      Result.Parts := Part_Lists.Create;
      return Result;
   end Create;

   -- Mutator to update the work of a score.
   procedure Set_Work
     (This : access Score;      -- The score to be updated.
      Work : in Work_Access) is -- The new work of that score.
   begin
      This.Work := Work;
   end Set_Work;

   -- Accessor to read the work of a score.
   function Get_Work
     (This : access Score-- The score to read from.
     return Work_Access is -- The work of that score.
   begin
      return This.Work;
   end Get_Work;

   -- Mutator to update the movement number of a score.
   procedure Set_Movement_Number
     (This            : access Score-- The score to be updated.
      Movement_Number : in String) is -- The new movement number of that score.
   begin
      To_String_Access(Movement_Number, This.Movement_Number);
   end Set_Movement_Number;

   -- Accessor to read the movement number of a score.
   function Get_Movement_Number
     (This : access Score-- The score to read from.
     return String is      -- The movement number of that score.
   begin
      return To_String(This.Movement_Number);
   end Get_Movement_Number;

   -- Mutator to update the movement title of a score.
   procedure Set_Movement_Title
     (This           : access Score-- The score to be updated.
      Movement_Title : in String) is -- The new movement title of that score.
   begin
      To_String_Access(Movement_Title, This.Movement_Title);
   end Set_Movement_Title;

   -- Accessor to read the movement title of a score.
   function Get_Movement_Title
     (This : access Score-- The score to read from.
     return String is      -- The movement title of that score.
   begin
      return To_String(This.Movement_Title);
   end Get_Movement_Title;

   -- Mutator to update the identification of a score.
   procedure Set_Identification
     (This           : access Score;                -- The score to be updated.
      Identification : in Identification_Access) is -- The new identification of that score.
   begin
      This.Identification := Identification;
   end Set_Identification;

   -- Accessor to read the identification of a score.
   function Get_Identification
     (This : access Score)           -- The score to read from.
     return Identification_Access is -- The identification of that score.
   begin
      return This.Identification;
   end Get_Identification;

   -- Accessor to read the parts of a score.
   function Get_Parts
     (This : access Score)      -- The score to read from.
     return Part_List_Access is -- The parts of that score.
   begin
      return This.Parts;
   end Get_Parts;

   -- Add a part to the score. No duplicate checking is performed.
   procedure Add_Part
     (This : access Score;      -- The score object instance.
      Part : in Part_Access) is -- The part to be added.
   begin
      Part_Lists.Push(This.Parts, Part);
   end Add_Part;

end Scores;