Skip to content

Commit 26b7d3d

Browse files
committed
Change the way ut_file_mapper handle default parameters
1 parent af1333b commit 26b7d3d

File tree

3 files changed

+43
-32
lines changed

3 files changed

+43
-32
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
55
# User-specific stuff:
66
.idea/
7+
.vscode/
78
.sonar/
89
site/
910
pages/

source/core/ut_file_mapper.pkb

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ create or replace package body ut_file_mapper is
5050

5151
function build_file_mappings(
5252
a_file_paths ut_varchar2_list,
53-
a_file_to_object_type_mapping ut_key_value_pairs := default_file_to_obj_type_map(),
54-
a_regex_pattern varchar2 := gc_file_mapping_regex,
55-
a_object_owner_subexpression positive := gc_regex_owner_subexpression,
56-
a_object_name_subexpression positive := gc_regex_name_subexpression,
57-
a_object_type_subexpression positive := gc_regex_type_subexpression
53+
a_file_to_object_type_mapping ut_key_value_pairs := null,
54+
a_regex_pattern varchar2 := null,
55+
a_object_owner_subexpression positive := null,
56+
a_object_name_subexpression positive := null,
57+
a_object_type_subexpression positive := null
5858
) return ut_file_mappings is
5959
begin
6060
return build_file_mappings(
@@ -66,43 +66,53 @@ create or replace package body ut_file_mapper is
6666
function build_file_mappings(
6767
a_object_owner varchar2,
6868
a_file_paths ut_varchar2_list,
69-
a_file_to_object_type_mapping ut_key_value_pairs := default_file_to_obj_type_map(),
70-
a_regex_pattern varchar2 := gc_file_mapping_regex,
71-
a_object_owner_subexpression positive := gc_regex_owner_subexpression,
72-
a_object_name_subexpression positive := gc_regex_name_subexpression,
73-
a_object_type_subexpression positive := gc_regex_type_subexpression
69+
a_file_to_object_type_mapping ut_key_value_pairs := null,
70+
a_regex_pattern varchar2 := null,
71+
a_object_owner_subexpression positive := null,
72+
a_object_name_subexpression positive := null,
73+
a_object_type_subexpression positive := null
7474
) return ut_file_mappings is
75-
l_key_values tt_key_values;
76-
l_mappings ut_file_mappings;
77-
l_mapping ut_file_mapping;
75+
l_file_to_object_type_mapping ut_key_value_pairs := coalesce(a_file_to_object_type_mapping, default_file_to_obj_type_map());
76+
l_regex_pattern varchar2(4000) := coalesce(a_regex_pattern, gc_file_mapping_regex);
77+
l_object_owner_subexpression positive := coalesce(a_object_owner_subexpression, gc_regex_owner_subexpression);
78+
l_object_name_subexpression positive := coalesce(a_object_name_subexpression, gc_regex_name_subexpression);
79+
l_object_type_subexpression positive := coalesce(a_object_type_subexpression, gc_regex_type_subexpression);
80+
81+
l_key_values tt_key_values;
82+
l_mappings ut_file_mappings;
83+
l_mapping ut_file_mapping;
7884
l_object_type_key varchar2(4000);
7985
l_object_type varchar2(4000);
8086
l_object_owner varchar2(4000);
8187
begin
8288
if a_file_paths is not null then
83-
l_key_values := to_hash_table(a_file_to_object_type_mapping);
89+
l_key_values := to_hash_table(l_file_to_object_type_mapping);
8490
l_mappings := ut_file_mappings();
91+
8592
for i in 1 .. a_file_paths.count loop
86-
l_object_type_key := upper(regexp_substr(a_file_paths(i), a_regex_pattern,1,1,'i',a_object_type_subexpression));
93+
l_object_type_key := upper(regexp_substr(a_file_paths(i), l_regex_pattern, 1, 1, 'i', l_object_type_subexpression));
8794
if l_key_values.exists(l_object_type_key) then
8895
l_object_type := upper(l_key_values(l_object_type_key));
8996
else
9097
l_object_type := null;
9198
end if;
92-
l_object_owner := upper(regexp_substr(a_file_paths(i), a_regex_pattern, 1, 1, 'i', a_object_owner_subexpression));
93-
if l_object_owner is null then
94-
l_object_owner := coalesce( a_object_owner, sys_context('USERENV', 'CURRENT_SCHEMA') );
95-
end if;
99+
100+
l_object_owner := coalesce(
101+
upper(a_object_owner),
102+
upper(regexp_substr(a_file_paths(i), l_regex_pattern, 1, 1, 'i', l_object_owner_subexpression)),
103+
sys_context('USERENV', 'CURRENT_SCHEMA'));
104+
96105
l_mapping := ut_file_mapping(
97-
file_name => a_file_paths(i),
106+
file_name => a_file_paths(i),
98107
object_owner => l_object_owner,
99-
object_name => upper(regexp_substr(a_file_paths(i), a_regex_pattern, 1, 1, 'i', a_object_name_subexpression)),
100-
object_type => l_object_type
108+
object_name => upper(regexp_substr(a_file_paths(i), l_regex_pattern, 1, 1, 'i', l_object_name_subexpression)),
109+
object_type => l_object_type
101110
);
102111
l_mappings.extend();
103112
l_mappings(l_mappings.last) := l_mapping;
104113
end loop;
105114
end if;
115+
106116
return l_mappings;
107117
end;
108118

source/core/ut_file_mapper.pks

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,21 @@ create or replace package ut_file_mapper authid current_user is
2525

2626
function build_file_mappings(
2727
a_file_paths ut_varchar2_list,
28-
a_file_to_object_type_mapping ut_key_value_pairs := default_file_to_obj_type_map(),
29-
a_regex_pattern varchar2 := gc_file_mapping_regex,
30-
a_object_owner_subexpression positive := gc_regex_owner_subexpression,
31-
a_object_name_subexpression positive := gc_regex_name_subexpression,
32-
a_object_type_subexpression positive := gc_regex_type_subexpression
28+
a_file_to_object_type_mapping ut_key_value_pairs := null,
29+
a_regex_pattern varchar2 := null,
30+
a_object_owner_subexpression positive := null,
31+
a_object_name_subexpression positive := null,
32+
a_object_type_subexpression positive := null
3333
) return ut_file_mappings;
3434

3535
function build_file_mappings(
3636
a_object_owner varchar2,
3737
a_file_paths ut_varchar2_list,
38-
a_file_to_object_type_mapping ut_key_value_pairs := default_file_to_obj_type_map(),
39-
a_regex_pattern varchar2 := gc_file_mapping_regex,
40-
a_object_owner_subexpression positive := gc_regex_owner_subexpression,
41-
a_object_name_subexpression positive := gc_regex_name_subexpression,
42-
a_object_type_subexpression positive := gc_regex_type_subexpression
38+
a_file_to_object_type_mapping ut_key_value_pairs := null,
39+
a_regex_pattern varchar2 := null,
40+
a_object_owner_subexpression positive := null,
41+
a_object_name_subexpression positive := null,
42+
a_object_type_subexpression positive := null
4343
) return ut_file_mappings;
4444

4545

0 commit comments

Comments
 (0)