package carpool.cleanRoutineTask;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import carpool.carpoolDAO.CarpoolDaoBasic;
import carpool.carpoolDAO.CarpoolDaoMessage;
import carpool.common.DateUtility;
import carpool.common.DebugLog;
import carpool.configurations.EnumConfig;
import carpool.configurations.EnumConfig.MessageType;
import carpool.exception.location.LocationNotFoundException;
import carpool.exception.message.MessageNotFoundException;
import carpool.exception.user.UserNotFoundException;
import carpool.model.Message;
import carpool.model.representation.SearchRepresentation;
public class MessageCleaner extends CarpoolDaoMessage {
public static void Clean() throws LocationNotFoundException{
Calendar currentDate = DateUtility.getCurTimeInstance();
String ct=DateUtility.toSQLDateTime(currentDate);
String query = "SELECT * from carpoolDAOMessage WHERE((isRoundTrip LIKE ? AND arrival_Time < ?) OR(isRoundTrip LIKE ? AND departure_Time < ?))AND messageState LIKE ?;";
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try{
conn = CarpoolDaoBasic.getSQLConnection();
stmt = conn.prepareStatement(query);
stmt.setInt(1, 1);
stmt.setString(2, ct);
stmt.setInt(3, 0);
stmt.setString(4, ct);
stmt.setInt(5, 2);
rs = stmt.executeQuery();
while(rs.next()){
Message msg = CarpoolDaoMessage.createMessageByResultSet(rs, false,conn);
msg.setState(EnumConfig.MessageState.fromInt(1));
CarpoolDaoMessage.UpdateMessageInDatabase(msg,conn);
}
} catch (SQLException e) {
e.printStackTrace();
DebugLog.d(e);
} catch (UserNotFoundException e) {
e.printStackTrace();
} catch (MessageNotFoundException e) {
e.printStackTrace();
} finally{
CarpoolDaoBasic.closeResources(conn, stmt, rs, true);
}
}
}