import ianywhere.ml.script.*;
import java.io.*;
import java.sql.*;
public class MobiLinkOrders {
// class level DBConnectionContext
DBConnectionContext _cc;
// java objects for file i/o
FileWriter my_writer;
BufferedReader my_reader;
public MobiLinkOrders( DBConnectionContext cc )
throws IOException, FileNotFoundException
{
// declare a class-level DBConnectionContext
_cc = cc;
}
public void writeOrderComment( int _commentID, int _orderID, String _comments )
throws IOException
{
if (my_writer == null)
// a FileWriter for writing order comments
my_writer = new FileWriter( "C:\\MLdirect\\orderComments.txt",true);
// write out the order comments to remoteOrderComments.txt
my_writer.write(_commentID + "\t" + _orderID + "\t" + _comments);
my_writer.write( "\n" );
my_writer.flush();
}
// method for the handle_UploadData synchronization event
public void GetUpload( UploadData ut )
throws SQLException, IOException
{
// get an UploadedTableData for OrderComments
UploadedTableData orderCommentsTbl = ut.getUploadedTableByName("OrderComments");
// get inserts uploaded by the MobiLink client
ResultSet insertResultSet = orderCommentsTbl.getInserts();
while ( insertResultSet.next() )
{
// get order comments
int _commentID = insertResultSet.getInt("comment_id");
int _orderID = insertResultSet.getInt("order_id");
String _specialComments = insertResultSet.getString("order_comment");
if (_specialComments != null)
{
writeOrderComment(_commentID,_orderID,_specialComments);
}
}
insertResultSet.close();
}
public void SetDownload()
throws SQLException, IOException
{
DownloadData download_d = _cc.getDownloadData();
DownloadTableData download_td = download_d.getDownloadTableByName( "OrderComments" );
PreparedStatement update_ps = download_td.getUpsertPreparedStatement();
// a BufferedReader for reading in responses
if (my_reader == null)
my_reader = new BufferedReader(new FileReader( "c:\\MLdirect\\orderResponses.txt"));
// get the next line from orderResponses
String commentLine;
commentLine = my_reader.readLine();
// send comment responses down to clients
while (commentLine != null)
{
// get the next line from orderResponses.txt
String[] response_details = commentLine.split("\t");
if (response_details.length != 3)
{
System.err.println("Error reading from orderResponses.txt");
System.err.println("Error setting direct row handling download");
return;
}
int comment_id = Integer.parseInt(response_details[0]);
int order_id = Integer.parseInt(response_details[1]);
String updated_comment = response_details[2];
// set an order comment response in the MobiLink download
update_ps.setInt(1, comment_id);
update_ps.setInt(2, order_id);
update_ps.setString(3, updated_comment);
update_ps.executeUpdate();
// get next line
commentLine = my_reader.readLine();
}
update_ps.close();
}
public void EndDownload()
throws IOException
{
// close i/o resources
if (my_reader != null) my_reader.close();
if (my_writer != null) my_writer.close();
}
}