1 PACKAGE BODY CCT_Route_Result_Pub as
2 /* $Header: cctrresb.pls 115.4 2002/11/28 01:13:06 gvasvani noship $ */
3
4 FUNCTION AddAgentID(
5 p_routeResult_varr IN OUT NOCOPY cct_routeResult_varr
6 ,p_agentID IN VARCHAR2
7 ,x_return_status Out NOCOPY VARCHAR2
8 ) return varchar2 IS
9
10 l_return_status varchar2(32) := G_FALSE;
11 i BINARY_INTEGER;
12 begin
13 x_return_status := G_FALSE;
14 If (p_agentID IS NULL) Then
15 RAISE NULL_POINTER_EXCEPTION;
16 End If ;
17
18 l_return_status := SetResultType(p_routeResult_varr,G_AGENTIDS,l_return_status);
19
20 p_routeResult_varr.EXTEND();
21 i := p_routeResult_varr.LAST;
22 p_routeResult_varr(i) := p_agentID;
23 x_return_status := G_TRUE;
24 return x_return_status;
25 EXCEPTION
26 WHEN NULL_POINTER_EXCEPTION THEN
27 RAISE NULL_POINTER_EXCEPTION;
28 WHEN OTHERS THEN
29 return x_return_status;
30 -- end ;
31 END AddAgentID;
32
33 FUNCTION AddRoutePoint(
34 p_routeResult_varr IN OUT NOCOPY cct_routeResult_varr
35 ,p_RoutePoint IN VARCHAR2
36 ,x_return_status Out NOCOPY VARCHAR2
37 ) return varchar2 IS
38
39 l_return_status varchar2(1) := G_FALSE;
40 i BINARY_INTEGER;
41 begin
42 x_return_status := G_FALSE;
43 If (p_RoutePoint IS NULL) Then
44 RAISE NULL_POINTER_EXCEPTION;
45 End If ;
46
47 l_return_status :=SetResultType(p_routeResult_varr,G_ROUTEPOINT,l_return_status);
48 p_routeResult_varr.EXTEND();
49 i := p_routeResult_varr.LAST;
50 p_routeResult_varr(i) := p_RoutePoint;
51 x_return_status := G_TRUE;
52 return x_return_status;
53 EXCEPTION
54 WHEN NULL_POINTER_EXCEPTION THEN
55 RAISE NULL_POINTER_EXCEPTION;
56 WHEN OTHERS THEN
57 return x_return_status;
58 -- end ;
59 END AddRoutePoint;
60
61 FUNCTION GetResultType(
62 p_routeResult_varr IN cct_routeResult_varr
63 ,x_return_status Out NOCOPY VARCHAR2
64 ) return varchar2 IS
65
66 l_routeResult varchar2(4000) :='';
67 i BINARY_INTEGER;
68 begin
69 x_return_status := G_FALSE;
70 i := p_routeResult_varr.FIRST;
71 if (i <= p_routeResult_varr.LAST) then
72 --dbms_output.put_line (' Value of routeResult is ' || p_routeResult_varr(i));
73 l_routeResult := p_routeResult_varr(i);
74 x_return_status := G_TRUE;
75 End If ;
76 return l_routeResult;
77 EXCEPTION
78 WHEN OTHERS THEN
79 return l_routeResult;
80 END GetResultType;
81
82 FUNCTION SetResultType(
83 p_routeResult_varr IN OUT NOCOPY cct_routeResult_varr
84 ,p_routeResult IN VARCHAR2
85 ,x_return_status Out NOCOPY VARCHAR2
86 ) return varchar2 IS
87
88 l_routeResult varchar2(4000) :='';
89 l_orig_result varchar2(4000) :='';
90 i BINARY_INTEGER;
91 begin
92 x_return_status := G_FALSE;
93 --For varrays, FIRST always returns 1 and LAST always equals COUNT
94 i := p_routeResult_varr.COUNT();
95 if (i=0) then
96 p_routeResult_varr.EXTEND();
97 elsif (i>1) then
98 i := p_routeResult_varr.FIRST;
99 if (p_routeResult_varr(i)<>p_routeResult) then
100 p_routeResult_varr.DELETE();
101 p_routeResult_varr.EXTEND();
102 else
103 x_return_status := G_TRUE;
104 return p_routeResult;
105 end if ;
106 end if;
107 i := p_routeResult_varr.FIRST;
108 if (i <= p_routeResult_varr.LAST) then
109 --dbms_output.put_line (' Value of routeResult is ' || p_routeResult_varr(i));
110 l_orig_result := p_routeResult_varr(i);
111 p_routeResult_varr(i) := p_routeResult;
112 x_return_status := G_TRUE;
113 End If ;
114 return l_orig_result;
115 EXCEPTION
116 WHEN NULL_POINTER_EXCEPTION THEN
117 RAISE NULL_POINTER_EXCEPTION;
118 WHEN OTHERS THEN
119 return l_orig_result;
120 END SetResultType;
121
122 FUNCTION NumOfAgents(
123 p_routeResult_varr IN cct_routeResult_varr
124 ) return NUMBER IS
125
126 l_size NUMBER;
127 i BINARY_INTEGER;
128 begin
129 i := p_routeResult_varr.COUNT();
130 l_size := i-1;
131 return l_size;
132 EXCEPTION
133 WHEN OTHERS THEN
134 return l_size;
135 -- end ;
136 END NumOfAgents;
137
138
139 END CCT_Route_Result_Pub;
140