KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > quikj > application > web > talk > plugin > DbUnavailableUserTransfer


1 package com.quikj.application.web.talk.plugin;
2
3 import com.quikj.server.framework.*;
4 import com.quikj.server.web.*;
5 import com.quikj.application.web.talk.messaging.*;
6
7 import java.sql.*;
8
9 public class DbUnavailableUserTransfer implements DbOperationInterface
10 {
11     public DbUnavailableUserTransfer(String JavaDoc username, SessionInfo session, EndPointInterface active_called_party, SetupResponseMessage original_setupresp_message, int original_setupresp_status, String JavaDoc original_setupresp_reason, ServiceController parent, AceSQL database)
12     {
13         this.parent = parent;
14         this.database = database;
15         this.username = username;
16         this.session = session;
17         activeCalledParty = active_called_party;
18         originalSetupRespMessage = original_setupresp_message;
19         originalSetupRespStatus = original_setupresp_status;
20         originalSetupRespReason = original_setupresp_reason;
21     }
22     
23     public boolean checkForTransfer()
24     {
25         try
26         {
27             Statement statement = UserTable.getTransferInfoQueryStatement(database.getConnection(), username);
28             
29             operationId = database.executeSQL(statement,
30             (String JavaDoc []) null,
31             this);
32             
33             if (operationId == -1)
34             {
35                 lastError = parent.getErrorMessage();
36                 return false;
37             }
38             
39             return true;
40         }
41         catch (SQLException ex)
42         {
43             lastError = "Error creating SQL statement : " + ex.getMessage();
44             return false;
45         }
46     }
47     
48     public boolean processResponse(AceSQLMessage message) // returns done or not
49
{
50         if (message.getStatus() == AceSQLMessage.SQL_ERROR)
51         {
52             AceLogger.Instance().log(AceLogger.ERROR,
53             AceLogger.SYSTEM_LOG,
54             parent.getName()
55             + "- DbUnavailableUserTransfer.processResponse() -- Database error result querying user name "
56             + username + ".");
57             
58             // send response to the client
59
parent.finishSetupResponse(originalSetupRespMessage,
60             originalSetupRespStatus,
61             originalSetupRespReason,
62             activeCalledParty);
63             
64             return true;
65         }
66         
67         UserElement user_data = new UserElement();
68         
69         try
70         {
71             ResultSet result = message.getResultSet();
72             
73             if ((result == null) || (result.next() == false)) // no transfer to number provisioned
74
{
75                 // send response to the client
76
parent.finishSetupResponse(originalSetupRespMessage,
77                 originalSetupRespStatus,
78                 originalSetupRespReason,
79                 activeCalledParty);
80                 
81                 return true;
82             }
83             
84             UserTable.processTransferInfoQueryResult(user_data, result);
85         }
86         catch (Exception JavaDoc ex)
87         {
88             AceLogger.Instance().log(AceLogger.ERROR,
89             AceLogger.SYSTEM_LOG,
90             parent.getName()
91             + "- DbUnavailableUserTransfer.processResponse() -- Exception processing result : "
92             + ex.getMessage());
93             
94             // send response to the client
95
parent.finishSetupResponse(originalSetupRespMessage,
96             originalSetupRespStatus,
97             originalSetupRespReason,
98             activeCalledParty);
99             
100             return true;
101         }
102         
103         parent.transferUserUnavailableCall(session, user_data, activeCalledParty, username);
104         
105         return true;
106     }
107     
108     public void cancel()
109     {
110         database.cancelSQL(operationId, parent);
111     }
112     
113     public String JavaDoc getLastError()
114     {
115         return lastError;
116     }
117     
118     public EndPointInterface getEndPoint()
119     {
120         return session.getCallingEndPoint();
121     }
122     
123     
124     private String JavaDoc username;
125     private SessionInfo session;
126     private EndPointInterface activeCalledParty;
127     private SetupResponseMessage originalSetupRespMessage;
128     private int originalSetupRespStatus;
129     private String JavaDoc originalSetupRespReason;
130     
131     private int operationId;
132     
133     private String JavaDoc lastError = "";
134     
135     private ServiceController parent;
136     
137     private AceSQL database;
138     
139     
140 }
141
142
Popular Tags