1 TYPE BODY "JTF_DIAG_TREE" AS
2 MEMBER FUNCTION CONSTRUCT_NODE RETURN VARCHAR2 IS
3 STR varchar2(20000);
4 BEGIN
5 STR := '<node>';
6 STR := STR || ' <heading>' || SELF.HEADING || '</heading>';
7 STR := STR || ' </node>';
8 RETURN STR;
9 END CONSTRUCT_NODE;
10 MEMBER PROCEDURE SET_ADDED_TO_PARENT IS
11 BEGIN
12 SELF.ADDED_TO_PARENT := 1;
13 END SET_ADDED_TO_PARENT;
14 MEMBER PROCEDURE ADD_NODE(treeNode in OUT NOCOPY JTF_DIAG_TREE_NODE) IS
15 STR varchar2(20000);
16 BEGIN
17 IF ADDED_TO_PARENT <> 1 THEN
18 IF treeNode IS NOT NULL THEN
19 IF treeNode.ADDED_TO_PARENT <> 1 THEN
20 STR := treeNode.CONSTRUCT_NODE;
21 INSERT INTO JTF_DIAGNOSTIC_REPORT
22 (Execution_ID,UI_Node_ID,type,xmldata,parent_node_id)
23 VALUES(SELF.EXEC_ID
24 ,treeNode.UI_Node_ID
25 ,'treeNode'
26 ,xmltype(STR)
27 ,SELF.UI_NODE_ID);
28 treeNode.SET_ADDED_TO_PARENT;
29 ELSE
30 RAISE_APPLICATION_ERROR(-20100,'The TreeNode component cannot be added
31 to the Tree again');
32 END IF;
33 ELSE
34 RAISE_APPLICATION_ERROR(-20100, 'treeNode component can not be empty');
35 END IF;
36 ELSE
37 RAISE_APPLICATION_ERROR(-20100, 'treeNode has already been added');
38 END IF;
39 END ADD_NODE;
40 END;