rem {{ $Header: \\ukst76\rcsroot.7_0\model\JIN\GENERATE\RCS\JRIFOLD.JPS 40.4 1999/01/06 15:55:04 rmolland Exp rmolland $ rem {{ -----------------------------------------------------------------------+ rem File: $Workfile: jrifold.jps $ rem Author: $Author: rmolland $ rem Date: $Date: 1999/01/06 15:55:04 $ rem Version: $Revision: 40.4 $ rem Status: $State: Exp $ rem Locked_by: $Locker: rmolland $ rem Project: The Oracle Common Repository rem Description: Naming Service rem Notes: rem RealAuth: Karl McHorton rem IncepDate: 14th January 1998 rem Copyright: (c) Oracle Corporation 1998. All Rights Reserved. rem Tagline: -- Oracle Repository: Managing *all* your data -- rem --------------------------------------------------------------------------+ rem Log of Changes from Source Control System rem --------------------------------------------------------------------------+ rem rem }} -----------------------------------------------------------------------+ rem CREATE OR REPLACE package jr_folder is --------------------------------------------------------------------------- -- Procedure which creates a new folder and registers it with the specified folder. -- Returns folder_irid and folder_ivid of folder (new or exisiting) -- RJM 26/8/98 --------------------------------------------------------------------------- procedure register_folder (folder_name in varchar2, folder_irid out number, folder_ivid out number, folder_ref in number, folder_status out varchar2); --------------------------------------------------------------------------- -- -- Procedure which returns the details required to sync a folder path -- --------------------------------------------------------------------------- procedure getSyncDetails (rootFolderName in varchar2, strPath in varchar2, rootFolderIRID out number, ctxtFolderIRID out number, ctxtFolderIVID out number, ctxtFolderStatus out varchar2); procedure getSyncDetails2 (rootFolderName in varchar2, strPath in varchar2, rootFolderIRID out number, ctxtFolderIRID out number, ctxtFolderIVID out number, ctxtFolderStatus out varchar2, case_sens_flg out varchar2); --------------------------------------------------------------------------- -- Procedure which returns the context folder id for a given path and root -- folder ID -- RJM 26/8/98 --------------------------------------------------------------------------- procedure getContextFolderID (rootFolderRef in number, strPath in varchar2, contextFolderIRID out number, contextFolderIVID out number, folder_status out varchar2); procedure getContextFolderID2 (rootFolderRef in number, strPath in varchar2, contextFolderIRID out number, contextFolderIVID out number, folder_status out varchar2, case_sens_flg out varchar2); --------------------------------------------------------------------------- -- jr_folder.new_folder() -- create a new folder (within the context of a parent folder, if specified) -- through the CDAPI -- Folder is created within the context of another (specified) folder. Setting -- the context folder to null creates a root folder. -- -- IMPORTANT: NO exception handling! Caller must catch and deal with -- exceptions --------------------------------------------------------------------------- procedure new_folder(folder_name in varchar2, context_folder in number default null, folder_irid out number, folder_ivid out number); --------------------------------------------------------------------------- -- jr_folder.new_folder() -- create a new folder (within the context of a parent folder, if specified) -- through the CDAPI -- Thin wrapper for compatibility with previous code, returns irid. --------------------------------------------------------------------------- function new_folder(folder_name varchar2, context_folder number default null) return number; --------------------------------------------------------------------------- -- delete_folder -- delete a folder through the CDAPI -- -- IMPORTANT: NO exception handling! Caller must catch and deal with -- exceptions --------------------------------------------------------------------------- procedure delete_folder(folder_irid in number); --------------------------------------------------------------------------- -- Type Definitions for jr_folder --------------------------------------------------------------------------- subtype name_atom is sdd_object_versions.name%type; --------------------------------------------------------------------------- -- Bind -- -- Bind the object into the current working folder (container) -- If there is no current working folder and the object is itself a folder -- (or any container) then the folder will be a root folder. -- --------------------------------------------------------------------------- procedure bind ( object_irid number -- the object to be bound , name_in_context name_atom default null -- name in context ); ----------------- ------ OLD STUFF: ----------------- --------------------------------------------------------------------------- -- Type Definitions for jr_folder --------------------------------------------------------------------------- subtype max_string is sdd_object_versions.comments%type; subtype folder_handle is sdd_folders.irid%type; subtype object_irid is sdd_object_versions.irid%type; type name_list is table of sdd_object_versions.name%type; -- PL/SQL bug - cannot use name_atom here type repos_name is record( isabsolute boolean ,components name_list ,basename name_atom ,extension name_atom ); default_comp_sep constant varchar2(1) := '\'; default_body_sep constant varchar2(1) := '.'; --------------------------------------------------------------------------- -- Exceptions --------------------------------------------------------------------------- no_workarea_context exception; no_folder_context exception; FOLDER_ERROR exception; e_simplename_not_found exception; pragma exception_init(e_simplename_not_found, -20030); e_rootfolder_not_found exception; pragma exception_init(e_rootfolder_not_found, -20031); procedure unbind( object object_irid -- the object to be unbound ); procedure rebind( object object_irid -- the object to be bound ,context_folder folder_handle default null -- context folder/container ,name_in_context name_atom default null -- name in context ); procedure reattach_object(object_ivid in number ,new_container in number ,name_in_context in name_atom default null); procedure bind_context( folder folder_handle -- the folder to be bound ,context_folder folder_handle default null -- context folder ,name_in_context name_atom default null -- name in context ); function is_orphan(object_irid in number) return varchar2; pragma restrict_references (is_orphan,WNDS,WNPS); function is_bound( object object_irid -- the object to be queried ) return boolean; procedure unbind_context( folder folder_handle -- the folder to be unbound ); procedure delete_context( folder folder_handle -- the folder to be deleted ); procedure rebind_context( folder folder_handle -- the folder to be rebound ,context_folder folder_handle default null -- context folder ,name_in_context name_atom default null -- name in context ); function resolve( fullnamestring max_string -- the search string ,context_folder folder_handle default null -- context folder ) return object_irid; -- the irid of the found object pragma restrict_references(resolve, WNDS); function resolve_simplename( basename name_atom ,extension name_atom ,context_folder folder_handle default null -- context folder ) return object_irid; -- the irid of the found object pragma restrict_references(resolve_simplename, WNDS); function resolve_context( components name_list -- list of contexts ,context_folder folder_handle default null -- context folder ) return folder_handle; -- the found folder pragma restrict_references(resolve_context, WNDS); function get_root_context( context_name name_atom default null -- name of root folder ) return folder_handle; -- handle of root context pragma restrict_references(get_root_context, WNDS); -- simply creates a new, unbound folder function new_context( folder_name name_atom ) return folder_handle; -- handle of created folder function get_fullname( object object_irid ) return max_string; pragma restrict_references(get_fullname, WNDS); function parse_fullnamestring( fullnamestring max_string ,comp_sep char default default_comp_sep ,body_sep char default default_body_sep ) return repos_name; pragma restrict_references(parse_fullnamestring, WNDS); function build_fullnamestring( fullname repos_name ,comp_sep char default default_comp_sep ,body_sep char default default_body_sep ) return max_string; pragma restrict_references(build_fullnamestring, WNDS); procedure trace(message varchar2); pragma restrict_references(trace, WNDS); end jr_folder; / rem rem ---------------------------------------------------------------------------+ rem }} End of file $Workfile: jrphname.sql $ $$Header_is_done rem ---------------------------------------------------------------------------+