Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Change the way ut_file_mapper handle default parameters
  • Loading branch information
viniciusam committed Jul 23, 2017
commit 26b7d3dd5c5983689802e1fa56a52b7ef27c78a2
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
.idea/
.vscode/
.sonar/
site/
pages/
Expand Down
54 changes: 32 additions & 22 deletions source/core/ut_file_mapper.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ create or replace package body ut_file_mapper is

function build_file_mappings(
a_file_paths ut_varchar2_list,
a_file_to_object_type_mapping ut_key_value_pairs := default_file_to_obj_type_map(),
a_regex_pattern varchar2 := gc_file_mapping_regex,
a_object_owner_subexpression positive := gc_regex_owner_subexpression,
a_object_name_subexpression positive := gc_regex_name_subexpression,
a_object_type_subexpression positive := gc_regex_type_subexpression
a_file_to_object_type_mapping ut_key_value_pairs := null,
a_regex_pattern varchar2 := null,
a_object_owner_subexpression positive := null,
a_object_name_subexpression positive := null,
a_object_type_subexpression positive := null
) return ut_file_mappings is
begin
return build_file_mappings(
Expand All @@ -66,43 +66,53 @@ create or replace package body ut_file_mapper is
function build_file_mappings(
a_object_owner varchar2,
a_file_paths ut_varchar2_list,
a_file_to_object_type_mapping ut_key_value_pairs := default_file_to_obj_type_map(),
a_regex_pattern varchar2 := gc_file_mapping_regex,
a_object_owner_subexpression positive := gc_regex_owner_subexpression,
a_object_name_subexpression positive := gc_regex_name_subexpression,
a_object_type_subexpression positive := gc_regex_type_subexpression
a_file_to_object_type_mapping ut_key_value_pairs := null,
a_regex_pattern varchar2 := null,
a_object_owner_subexpression positive := null,
a_object_name_subexpression positive := null,
a_object_type_subexpression positive := null
) return ut_file_mappings is
l_key_values tt_key_values;
l_mappings ut_file_mappings;
l_mapping ut_file_mapping;
l_file_to_object_type_mapping ut_key_value_pairs := coalesce(a_file_to_object_type_mapping, default_file_to_obj_type_map());
l_regex_pattern varchar2(4000) := coalesce(a_regex_pattern, gc_file_mapping_regex);
l_object_owner_subexpression positive := coalesce(a_object_owner_subexpression, gc_regex_owner_subexpression);
l_object_name_subexpression positive := coalesce(a_object_name_subexpression, gc_regex_name_subexpression);
l_object_type_subexpression positive := coalesce(a_object_type_subexpression, gc_regex_type_subexpression);

l_key_values tt_key_values;
l_mappings ut_file_mappings;
l_mapping ut_file_mapping;
l_object_type_key varchar2(4000);
l_object_type varchar2(4000);
l_object_owner varchar2(4000);
begin
if a_file_paths is not null then
l_key_values := to_hash_table(a_file_to_object_type_mapping);
l_key_values := to_hash_table(l_file_to_object_type_mapping);
l_mappings := ut_file_mappings();

for i in 1 .. a_file_paths.count loop
l_object_type_key := upper(regexp_substr(a_file_paths(i), a_regex_pattern,1,1,'i',a_object_type_subexpression));
l_object_type_key := upper(regexp_substr(a_file_paths(i), l_regex_pattern, 1, 1, 'i', l_object_type_subexpression));
if l_key_values.exists(l_object_type_key) then
l_object_type := upper(l_key_values(l_object_type_key));
else
l_object_type := null;
end if;
l_object_owner := upper(regexp_substr(a_file_paths(i), a_regex_pattern, 1, 1, 'i', a_object_owner_subexpression));
if l_object_owner is null then
l_object_owner := coalesce( a_object_owner, sys_context('USERENV', 'CURRENT_SCHEMA') );
end if;

l_object_owner := coalesce(
upper(a_object_owner),
upper(regexp_substr(a_file_paths(i), l_regex_pattern, 1, 1, 'i', l_object_owner_subexpression)),
sys_context('USERENV', 'CURRENT_SCHEMA'));

l_mapping := ut_file_mapping(
file_name => a_file_paths(i),
file_name => a_file_paths(i),
object_owner => l_object_owner,
object_name => upper(regexp_substr(a_file_paths(i), a_regex_pattern, 1, 1, 'i', a_object_name_subexpression)),
object_type => l_object_type
object_name => upper(regexp_substr(a_file_paths(i), l_regex_pattern, 1, 1, 'i', l_object_name_subexpression)),
object_type => l_object_type
);
l_mappings.extend();
l_mappings(l_mappings.last) := l_mapping;
end loop;
end if;

return l_mappings;
end;

Expand Down
20 changes: 10 additions & 10 deletions source/core/ut_file_mapper.pks
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,21 @@ create or replace package ut_file_mapper authid current_user is

function build_file_mappings(
a_file_paths ut_varchar2_list,
a_file_to_object_type_mapping ut_key_value_pairs := default_file_to_obj_type_map(),
a_regex_pattern varchar2 := gc_file_mapping_regex,
a_object_owner_subexpression positive := gc_regex_owner_subexpression,
a_object_name_subexpression positive := gc_regex_name_subexpression,
a_object_type_subexpression positive := gc_regex_type_subexpression
a_file_to_object_type_mapping ut_key_value_pairs := null,
a_regex_pattern varchar2 := null,
a_object_owner_subexpression positive := null,
a_object_name_subexpression positive := null,
a_object_type_subexpression positive := null
) return ut_file_mappings;

function build_file_mappings(
a_object_owner varchar2,
a_file_paths ut_varchar2_list,
a_file_to_object_type_mapping ut_key_value_pairs := default_file_to_obj_type_map(),
a_regex_pattern varchar2 := gc_file_mapping_regex,
a_object_owner_subexpression positive := gc_regex_owner_subexpression,
a_object_name_subexpression positive := gc_regex_name_subexpression,
a_object_type_subexpression positive := gc_regex_type_subexpression
a_file_to_object_type_mapping ut_key_value_pairs := null,
a_regex_pattern varchar2 := null,
a_object_owner_subexpression positive := null,
a_object_name_subexpression positive := null,
a_object_type_subexpression positive := null
) return ut_file_mappings;


Expand Down