package com.diodesoftware.scb.tables;
import com.diodesoftware.dbmapper.DatabaseEntry;
import com.diodesoftware.dbmapper.DatabaseColumn;
import com.diodesoftware.dbmapper.DatabaseColumnType;
import com.diodesoftware.dbmapper.DBMapper;
import java.sql.ResultSet;
import java.util.Calendar;
import java.util.List;
import java.util.ArrayList;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import org.apache.log4j.Logger;
/**
* Copyright 2008 Sensemaker Software Inc.
* User: rob
* Date: Apr 5, 2008
* Time: 1:42:02 PM
*/
public class ReportedClip implements DatabaseEntry {
private int number;
private String uri;
private String reason;
private Calendar created = Calendar.getInstance();
private boolean handled;
private static Logger log = Logger.getLogger(ReportedClip.class);
private DatabaseColumn[] columns = new DatabaseColumn[]{
new DatabaseColumn("Uri", DatabaseColumnType.TEXT),
new DatabaseColumn("Reason", DatabaseColumnType.TEXT),
new DatabaseColumn("Created", DatabaseColumnType.DATEEPOCH),
new DatabaseColumn("Handled", DatabaseColumnType.BOOLEAN)
};
public DatabaseColumn[] columns(){return columns;}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public Calendar getCreated() {
return created;
}
public void setCreated(Calendar created) {
this.created = created;
}
public boolean getHandled(){
return isHandled();
}
public boolean isHandled() {
return handled;
}
public void setHandled(boolean handled) {
this.handled = handled;
}
public static void report(String uri, String reason, Connection con){
ReportedClip rc = new ReportedClip();
rc.setUri(uri);
rc.setReason(reason);
DBMapper.save(rc, con);
}
public static List<ReportedClip> listUnhandled(Connection con){
List<ReportedClip> result = new ArrayList<ReportedClip>();
String sql = "Select * from ReportedClip where Handled = 'N'";
try{
PreparedStatement prepStmt = con.prepareStatement(sql);
ResultSet rs = prepStmt.executeQuery();
while(rs.next()){
result.add((ReportedClip)DBMapper.loadSingle(ReportedClip.class, rs));
}
rs.close();
prepStmt.close();
}catch(SQLException e){
log.error("Error running SQL [" + sql + "]",e);
}
return result;
}
public static void handle(int number, Connection con){
ReportedClip rc = (ReportedClip)DBMapper.load(ReportedClip.class, number, con);
rc.setHandled(true);
DBMapper.save(rc,con);
}
}