package whiteboard.group;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.util.ServletContextAware;
import whiteboard.HomePage;
import java.sql.Connection;
import java.sql.PreparedStatement;
import javax.servlet.ServletContext;
import javax.sql.DataSource;
/**
* This action class deletes a group from the database.
*
* @author Gooble
*
*/
public class DeleteGroup extends ActionSupport implements ServletContextAware {
private ServletContext servletContext;
private HomePage homePage;
public String execute() {
homePage = getHomePage();
String gid = getGroupid();
DataSource dbcp = (DataSource) servletContext
.getAttribute("dbpool");
removeGroupFromDB(groupid, homePage.getUser(), dbcp);
if (homePage.removeGroup(Integer.parseInt(gid))) {
return SUCCESS;
}
validate();
return INPUT;
}
/**
* Remove the group with the given groupid from the database.
*
* @param groupid string version of the group id
* @param user the user who is removing this group
* @param dbcp the database connection
* @return
*/
public static boolean removeGroupFromDB(String groupid,
String user, DataSource dbcp) {
Connection con = null;
boolean wasError = false;
try {
con = dbcp.getConnection();
PreparedStatement prepStatement;
// DELETE ALL STUDENTS IN THE GROUP
String sql = "DELETE FROM members WHERE groupid = ? AND login = ?";
prepStatement = con.prepareStatement(sql);
prepStatement.setInt(1, Integer.parseInt(groupid));
prepStatement.setString(2, user);
prepStatement.executeUpdate();
// DELETE ALL WALLPOSTS
sql = "DELETE FROM wallposts WHERE groupid = ?";
prepStatement = con.prepareStatement(sql);
prepStatement.setInt(1, Integer.parseInt(groupid));
prepStatement.executeUpdate();
// DELETE GROUP
sql = "DELETE FROM groups WHERE id = ?";
prepStatement = con.prepareStatement(sql);
prepStatement.setInt(1, Integer.parseInt(groupid));
prepStatement.executeUpdate();
prepStatement.close();
} catch (Exception ex) {
ex.printStackTrace();
wasError = true;
} finally {
if (con != null)
try {
con.close();
} catch (Exception e) {
}
}
return wasError;
}
private HomePage getHomePage() {
return (HomePage) this.servletContext.getAttribute("homePage");
}
private String groupid;
public void setServletContext(ServletContext arg0) {
this.servletContext = arg0;
}
public void setGroupid(String groupid) {
this.groupid = groupid;
}
public String getGroupid() {
return groupid;
}
public void validate() {
homePage = getHomePage();
/* Can't perform this action */
if (homePage == null)
System.out.println("homepage is null");
}
}
|