1 TYPE BODY "JTF_DIAG_NOTE" AS
2 MEMBER FUNCTION CONSTRUCT_NODE RETURN VARCHAR2 IS
3 STR varchar2(20000);
4 BEGIN
5 STR := '<node>';
6 STR := STR || ' <content>' || SELF.CONTENT || '</content>';
7 IF LINK_IDS IS NOT NULL THEN
8 STR := STR || ' <row>';
9 for x in LINK_IDS.FIRST .. LINK_IDS.LAST
10 LOOP
11 STR := STR || '<col>';
12 STR := STR || LINK_IDS(x);
13 STR := STR || '</col>';
14 END LOOP;
15 STR := STR || ' </row>';
16 END IF;
17 IF SELF.HEADING IS NOT NULL THEN
18 STR := STR || ' <heading>' || SELF.HEADING || '</heading>';
19 ELSE
20 STR := STR || ' <heading></heading>';
21 END IF;
22 STR := STR || ' </node>';
23 RETURN STR;
24 END CONSTRUCT_NODE;
25 MEMBER PROCEDURE SET_ADDED_TO_PARENT IS
26 BEGIN
27 SELF.ADDED_TO_PARENT := 1;
28 END SET_ADDED_TO_PARENT;
29 MEMBER PROCEDURE SET_LINK(position in out number, link in OUT NOCOPY JTF_DIAG_LINK) IS
30 STR varchar2(20000);
31 BEGIN
32 IF position > SELF.NO_OF_LINKS THEN
33 RAISE_APPLICATION_ERROR(-20100,'The position provided for the link in the Note content is out of range');
34 END IF;
35 IF ADDED_TO_PARENT <> 1 THEN
36 IF link IS NOT NULL THEN
37 IF link.ADDED_TO_PARENT <> 1 THEN
38 STR := link.CONSTRUCT_NODE;
39 INSERT INTO JTF_DIAGNOSTIC_REPORT
40 (Execution_ID,UI_Node_ID,type,xmldata,parent_node_id)
41 VALUES(SELF.EXEC_ID
42 ,link.UI_Node_ID
43 ,'link'
44 ,xmltype(STR)
45 ,SELF.UI_NODE_ID);
46 link.SET_ADDED_TO_PARENT;
47 LINK_IDS(position) := link.UI_NODE_ID;
48 ELSE
49 RAISE_APPLICATION_ERROR(-20100,'The link component cannot be added
50 to the parent component again');
51 END IF;
52 ELSE
53 RAISE_APPLICATION_ERROR(-20100, 'Link component can not be empty');
54 END IF;
55 ELSE
56 RAISE_APPLICATION_ERROR(-20100, 'Link has already been added');
57 END IF;
58 END SET_LINK;
59
60 MEMBER PROCEDURE SET_HEADING(HEADING VARCHAR2) IS
61 BEGIN
62 IF ADDED_TO_PARENT = 0 THEN
63 IF HEADING is not null then
64 SELF.HEADING := DBMS_XMLGEN.CONVERT(HEADING,0);
65 END IF;
66 ELSE
67 RAISE_APPLICATION_ERROR(-20100, 'Note component has already been added to
68 the report');
69 END IF;
70 END SET_HEADING;
71 END;