-- $Date: 2004/03/08 11:05:10 $
-- $Revision: 1.2 $
-- $Author: jcrocholl $
-- $Hash: 5c5e1f9003f9536bdc9d06633c536f5a $

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

with String_String_Hash_Tables; use String_String_Hash_Tables;
with Encodings; use Encodings;

with Strings; use Strings;

package Identifications is

   -- Public representation.
   type Identification is limited private;

   -- Pointer to representation data.
   type Identification_Access is access all Identification;

   -- Constructor for instances.
   function Create
     return Identification_Access-- The newly created identification.

   -- Accessor to read the creators of a identification.
   function Get_Creators
     (This : access Identification-- The identification to read from.
     return Hash_Table_Access;      -- The creators of that identification.

   -- Mutator to update the rights of a identification.
   procedure Set_Rights
     (This   : access Identification-- The identification to be updated.
      Rights : in String);            -- The new rights of that identification.

   -- Accessor to read the rights of a identification.
   function Get_Rights
     (This : access Identification-- The identification to read from.
     return String;                 -- The rights of that identification.

   -- Mutator to update the encoding of a identification.
   procedure Set_Encoding
     (This     : access Identification-- The identification to be updated.
      Encoding : in Encoding_Access);   -- The new encoding of that identification.

   -- Accessor to read the encoding of a identification.
   function Get_Encoding
     (This : access Identification-- The identification to read from.
     return Encoding_Access;        -- The encoding of that identification.

   -- Mutator to update the source of a identification.
   procedure Set_Source
     (This   : access Identification-- The identification to be updated.
      Source : in String);            -- The new source of that identification.

   -- Accessor to read the source of a identification.
   function Get_Source
     (This : access Identification-- The identification to read from.
     return String;                 -- The source of that identification.

   -- Add a creator to this identification.
   procedure Add_Creator
     (This         : access Identification-- The identification object instance.
      Creator_Type : in String;             -- composer / arranger / ...
      Creator_Name : in String);            -- The name of the creator.

private

   -- Private representation.
   type Identification is limited record
      Creators : Hash_Table_Access;
      Rights   : String_Access;
      Encoding : Encoding_Access;
      Source   : String_Access;
   end record;

end Identifications;