text: --
  -- The Categories Package
  --
  -- @author Timo Hentschel (timo@timohentschel.de)
  -- @creation-date 2003-04-16
  --
  
  
  -- This should eventually be added to the acs-service-contract installation files
  
  declare
      v_id	integer;
  begin
      v_id :=  acs_sc_contract.new(
  	    contract_name => 'AcsObject',
  	    contract_desc => 'Acs Object Id Handler'
      );
      v_id := acs_sc_msg_type.new(
  	    msg_type_name => 'AcsObject.PageUrl.InputType',
  	    msg_type_spec => 'object_id:integer'
      );
      v_id := acs_sc_msg_type.new(
  	    msg_type_name => 'AcsObject.PageUrl.OutputType',
  	    msg_type_spec => 'page_url:string'
      );
      v_id := acs_sc_operation.new(
  	    contract_name => 'AcsObject',
  	    operation_name => 'PageUrl',
  	    operation_desc => 'Returns the package specific url to a page that displays an object',
  	    operation_iscachable_p => 'f',
  	    operation_nargs => 1,
  	    operation_inputtype => 'AcsObject.PageUrl.InputType',
  	    operation_outputtype => 'AcsObject.PageUrl.OutputType'
      );
  end;
  /
  show errors
  
  -- there should be an implementation of this contract
  -- for apm_package, user, group and other object types
  
  
  -- this should eventually be added to acs-kernel
  
  create table acs_named_objects (
  	object_id	integer not null
  			constraint acs_named_objs_object_id_fk
  			references acs_objects(object_id) on delete cascade,
  	locale		varchar2(5)
  			constraint acs_named_objs_locale_fk
  			references ad_locales,
  	object_name	varchar2(200),
  	creation_date	date default sysdate not null,
  	package_id	integer
  			constraint acs_named_objs_package_id_fk
  			references apm_packages(package_id) on delete cascade,
  	constraint acs_named_objs_pk
  	primary key (object_id, locale)
  );
  
  create index acs_named_objs_name_ix on acs_named_objects (substr(upper(object_name),1,1));
  create index acs_named_objs_package_ix on acs_named_objects(package_id);
  
  begin
          acs_object_type.create_type (
                  supertype       =>      'acs_object',
                  object_type     =>      'acs_named_object',
                  pretty_name     =>      'Named Object',
                  pretty_plural   =>      'Named Objects',
                  table_name      =>      'acs_named_objects',
                  id_column       =>      'object_id'
          );
  end;
  /
  show errors
  