1 PACKAGE BODY AS_SEC_CONTEXT as
2 /* $Header: asseccxb.pls 115.1 2002/12/05 21:28:01 karaghav ship $ */
3
4 PROCEDURE set_attr_values
5 (p_attr_names IN VARCHAR2_TABLE_100,
6 p_attr_vals IN VARCHAR2_TABLE_100
7 )
8 IS
9 newrec sec_attr_record;
10 BEGIN
11 IF p_attr_names IS NOT null THEN
12 IF p_attr_vals IS NOT null THEN
13 IF p_attr_vals.COUNT = p_attr_names.COUNT THEN
14 FOR i IN p_attr_names.FIRST .. p_attr_names.LAST
15 LOOP
16 newrec.sec_attr_name := p_attr_names(i);
17 newrec.sec_attr_value := p_attr_vals(i);
18 IF g_sec_attr_table IS NULL THEN
19 g_sec_attr_table := sec_attr_tbl(newrec);
20 ELSE
21 g_sec_Attr_table.EXTEND;
22 g_sec_attr_table(g_sec_attr_table.COUNT) := newrec;
23 END IF;
24 END LOOP;
25 END IF;
26 END IF;
27 END IF;
28 END;
29
30 PROCEDURE set_attr_value(
31 p_attr_name IN VARCHAR2,
32 p_attr_value IN VARCHAR2)
33 IS
34 newrec sec_attr_record;
35 BEGIN
36 if p_attr_name IS NOT NULL THEN
37 if p_attr_value IS NOT NULL THEN
38 newrec.sec_attr_name := p_attr_name;
39 newrec.sec_attr_value := p_attr_value;
40 if g_sec_attr_table IS NULL THEN
41 g_sec_attr_table := sec_attr_tbl(newrec);
42 else
43 g_sec_attr_table.EXTEND;
44 g_sec_attr_table(g_sec_attr_table.COUNT) := newrec;
45 end if;
46 end if;
47 end if;
48 END;
49
50 FUNCTION get_attr_value
51 ( p_attr_name VARCHAR2) RETURN VARCHAR2
52 IS
53 BEGIN
54 IF g_sec_attr_table IS NULL THEN
55 RETURN NULL;
56 END IF;
57 IF g_sec_attr_table.COUNT = 0 THEN
58 RETURN NULL;
59 ELSE
60 FOR i IN g_sec_attr_table.FIRST .. g_sec_attr_table.LAST
61 LOOP
62 IF g_sec_attr_table(i).sec_attr_name = p_attr_name THEN
63 RETURN g_sec_attr_table(i).sec_attr_value;
64 END IF;
65 END LOOP;
66 RETURN NULL;
67 END IF;
68 END;
69
70 PROCEDURE INIT
71 IS
72 BEGIN
73 g_sec_attr_table := NULL;
74 END;
75
76 END;