* @return um objeto tipo doen�a montado a partir dos dados
* do banco de dados
*/
public DiseaseType search(Long code) throws RepositoryException, ObjectNotFoundException {
DiseaseType td = null;
String nome, descricao, manifestacao, duracao;
List sintomas;
String sql = null;
// Tentativa de recuperar os dados do bd usando o c�digo
// informado
try {
sql = "select * from scbs_tipodoenca where " + "codigo = '" + code + "'";
Statement stmt = (Statement) this.mp.getCommunicationChannel();
resultSet = stmt.executeQuery(sql);
if (resultSet.next()) {
code = (new Long(resultSet.getString("codigo"))).longValue();
nome = resultSet.getString("nome");
descricao = resultSet.getString("descricao");
manifestacao = resultSet.getString("manifestacao");
duracao = resultSet.getString("duracao");
//preparar para buscar em outra tabela os sintomas desta doenca
//depois vai chamar deepAccess() de RepositorioSintomaArray
} else {
throw new ObjectNotFoundException(ExceptionMessages.EXC_FALHA_PROCURA);
}
resultSet.close();
stmt.close();
// Query para recuperar os sintomas relacionados com o tipo
// de doen�a encontrado a partir do c�digo
sql = "select * from scbs_tipodoencasintoma where codigotipodoenca = '" + code + "'";
stmt = (Statement) this.mp.getCommunicationChannel();
resultSet = stmt.executeQuery(sql);
sintomas = new ArrayList();
while (resultSet.next()) {
int codeSymptom = (new Integer(resultSet.getString("codigosintoma"))).intValue();
// Query para encontrar os dados de um sintoma usando o
// c�digo encontrado na tabela de relacionamentos.
sql = "select * from scbs_sintoma where " + "codigo = '" + codeSymptom + "'";
Statement stmt2 = (Statement) this.mp.getCommunicationChannel();
ResultSet resultSet2 = stmt2.executeQuery(sql);
Symptom sintoma;
if (resultSet2.next()) {
sintoma = new Symptom(resultSet2.getString("descricao"));
sintoma.setId((new Long(resultSet2.getString("codigo"))).longValue());
} else {
// Caso esse trecho de c�digo seja executado,
// a tabela de relacinoamentos n�o est� consistente
// com a tabela de sintomas
throw new ObjectNotFoundException(ExceptionMessages.EXC_FALHA_PROCURA);
}
resultSet2.close();
stmt2.close();
sintomas.add(sintoma);
}
resultSet.close();
stmt.close();
td = new DiseaseType(nome, descricao, manifestacao, duracao, sintomas);
td.setId(code);
} catch (PersistenceMechanismException e) {
throw new RepositoryException(ExceptionMessages.EXC_FALHA_BD);
} catch (SQLException e) {
e.printStackTrace();