Fazer este método desta forma está, conceitualmente, correto ou tenho que separar essa lógica em mais métodos? Se eu tiver que separar, 80% da implementação do método será igual. Por isso pensei em fazer dessa forma.
Abstraiam o fato de eu estar usando JDBC. =)
Olha eu perturbando com dúvidas sobre boas práticas novamente.
public List<OS> getOsByStatus(Object o){
List<OS> retorno = new ArrayList<OS>();
long codAgente = 0;
String sql = "";
if (o instanceof Tecnico) {
sql = " SELECT * FROM os WHERE osagetec = ? ";
Tecnico tec = (Tecnico) o;
codAgente = tec.getCod();
}else if (o instanceof Cliente){
sql = " SELECT * FROM os WHERE osagecli = ? ";
Cliente c = (Cliente) o;
codAgente = c.getCod();
}
PreparedStatement stmt;
ResultSet rs;
try {
stmt = getConn().prepareStatement(sql);
stmt.setLong(1, codAgente);
rs = stmt.executeQuery();
while (rs.next()) {
// Popula o List
}
}catch(SQLException e) {
e.printStackTrace();
}
return retorno;
}

