package src;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.sql.Types;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import br.com.procempa.modus.entity.Persistent;
import br.com.procempa.modus.entity.Telecentro;
public class TelecentroMigration extends EntityMigrator {
public TelecentroMigration(Connection connSource, Connection connDestination) {
super(connSource, connDestination);
}
public PreparedStatement prepareStatement(ResultSet rs,
PreparedStatement statement, List<String> messages)
throws Exception {
Telecentro tele = (Telecentro) getObject(rs);
statement.setLong(1, tele.getId());
statement.setDate(2, new java.sql.Date(tele.getTimestamp().getTime()));
statement.setString(3, tele.getNome());
statement.setString(4, tele.getEmail());
statement.setString(5, tele.getHorarioInicio());
statement.setString(6, tele.getHorarioFim());
statement.setString(7, tele.getEndereco().getBairro());
statement.setString(8, tele.getEndereco().getCep());
statement.setString(9, tele.getEndereco().getCidade());
statement.setString(10, tele.getEndereco().getComplemento());
statement.setString(11, tele.getEndereco().getLogradouro());
statement.setString(12, tele.getEndereco().getNumero());
statement.setString(13, tele.getEndereco().getPais());
statement.setString(14, tele.getEndereco().getUf());
statement.setString(15, tele.getTelefone());
statement.setString(16, tele.getTurno1());
statement.setString(17, tele.getTurno2());
statement.setString(18, tele.getTurno3());
statement.setInt(19, tele.getTempo());
statement.setBoolean(20, tele.getEncerramentoAutomatico());
statement.setBoolean(21, tele.getUmUsuarioPorEquipamento());
statement.setNull(22, Types.NULL);
if (!(tele.getCoordenador() == null)){
statement.setLong(23, tele.getCoordenador().getId());
} else {
statement.setNull(23, Types.NULL);
messages.add("Registro de TELECENTRO (id: " + tele.getId()
+ ") com chave estrangeira de Usuario(coordenador) = NULL");
}
if (!(tele.getMonitor1() == null)){
statement.setLong(24, tele.getMonitor1().getId());
} else {
statement.setNull(24, Types.NULL);
messages.add("Registro de TELECENTRO (id: " + tele.getId()
+ ") com chave estrangeira de Usuario(monitor1) = NULL");
}
if (!(tele.getMonitor2() == null)){
statement.setLong(25, tele.getMonitor2().getId());
} else {
statement.setNull(25, Types.NULL);
messages.add("Registro de TELECENTRO (id: " + tele.getId()
+ ") com chave estrangeira de Usuario(monitor2) = NULL");
}
if (!(tele.getMonitor3() == null)){
statement.setLong(26, tele.getMonitor3().getId());
} else {
statement.setNull(26, Types.NULL);
messages.add("Registro de TELECENTRO (id: " + tele.getId()
+ ") com chave estrangeira de Usuario(monitor3) = NULL");
}
return statement;
}
public Persistent getObject(ResultSet rs) throws Exception {
Telecentro tele = new Telecentro();
tele.setId(rs.getLong(1));
tele.setTimestamp(new Timestamp(rs.getDate(2).getTime()));
tele.setNome(StringUtils.defaultIfEmpty(rs.getString(3), ""));
tele.setHorarioInicio(StringUtils.defaultIfEmpty(rs.getString(4), ""));
tele.setHorarioFim(StringUtils.defaultIfEmpty(rs.getString(5), ""));
tele.getEndereco().setBairro(
StringUtils.defaultIfEmpty(rs.getString(6), ""));
tele.getEndereco().setCep(
StringUtils.defaultIfEmpty(rs.getString(7), ""));
tele.getEndereco().setCidade(
StringUtils.defaultIfEmpty(rs.getString(8), ""));
tele.getEndereco().setComplemento(
StringUtils.defaultIfEmpty(rs.getString(9), ""));
tele.getEndereco().setLogradouro(
StringUtils.defaultIfEmpty(rs.getString(10), ""));
tele.getEndereco().setNumero(
StringUtils.defaultIfEmpty(rs.getString(11), ""));
tele.getEndereco().setPais(
StringUtils.defaultIfEmpty(rs.getString(12), ""));
tele.getEndereco().setUf(
StringUtils.defaultIfEmpty(rs.getString(13), ""));
tele.setTelefone(StringUtils.defaultIfEmpty(rs.getString(14), ""));
tele.setEmail(StringUtils.defaultIfEmpty(rs.getString(15), ""));
if (rs.getString(25) == null){
tele.setCoordenador(null);
} else {
tele.getCoordenador().setId(rs.getLong(16));
}
if (rs.getString(26) == null){
tele.setMonitor1(null);
} else {
tele.getMonitor1().setId(rs.getLong(17));
}
if (rs.getString(27) == null){
tele.setMonitor2(null);
} else {
tele.getMonitor2().setId(rs.getLong(18));
}
if (rs.getString(28) == null){
tele.setMonitor3(null);
} else {
tele.getMonitor3().setId(rs.getLong(19));
}
tele.setTurno1(StringUtils.defaultIfEmpty(rs.getString(20), ""));
tele.setTurno2(StringUtils.defaultIfEmpty(rs.getString(21), ""));
tele.setTurno3(StringUtils.defaultIfEmpty(rs.getString(22), ""));
tele.setTempo(rs.getInt(23));
tele.setEncerramentoAutomatico(rs.getBoolean(24));
return tele;
}
public String getSourceQuery() {
return "SELECT t.idTelecentro, t.timestamp, t.nome, t.horarioInicio, "
+ "t.horarioFim, t.bairro, t.cep, t.cidade, t.complemento, t.logradouro, "
+ "t.numero, t.pais, t.uf, t.telefone, t.email, t.coordenador_fk, "
+ "t.monitor1_fk, t.monitor2_fk, t.monitor3_fk, t.turno1, t.turno2, "
+ "t.turno3, t.tempo, t.encerramentoAutomatico, u1.idUsuario, u2.idUsuario, "
+ "u3.idUsuario, u4.idUsuario "
+ "FROM TELECENTRO t LEFT JOIN USUARIO u1 "
+ "ON t.coordenador_fk = u1.idUsuario LEFT JOIN USUARIO u2 "
+ "ON t.monitor1_fk = u2.idUsuario LEFT JOIN USUARIO u3 "
+ "ON t.monitor2_fk = u3.idUsuario LEFT JOIN USUARIO u4 "
+ "ON t.monitor3_fk = u4.idUsuario";
}
public String getInsertQuery() {
return "INSERT INTO TELECENTRO(id, timestamp, nome, email, "
+ "horarioInicio, horarioFim, bairro, cep, cidade, "
+ "complemento, logradouro, numero, pais, uf, telefone, "
+ "turno1, turno2, turno3, tempo, encerramentoAutomatico, "
+ "umUsuarioPorEquipamento, user_id, coordenador_fk, monitor1_fk, "
+ "monitor2_fk, monitor3_fk) "
+ "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
+ "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
}
public void successMessage(ResultSet rs) throws Exception {
System.out.println("Inserido telecentro: " + rs.getLong(1) + " - "
+ rs.getString(3));
}
}