@Override
 public synchronized boolean equals(Object obj) {
   if (this == obj) return true;
   if (obj == null) return false;
   if (getClass() != obj.getClass()) return false;
   Solicitacao other = (Solicitacao) obj;
   if (destinoCaronaSolicitacao == null) {
     if (other.destinoCaronaSolicitacao != null) return false;
   } else if (!destinoCaronaSolicitacao.equals(other.destinoCaronaSolicitacao)) return false;
   if (donoDaCaronaSolicitacao == null) {
     if (other.donoDaCaronaSolicitacao != null) return false;
   } else if (!donoDaCaronaSolicitacao.equals(other.donoDaCaronaSolicitacao)) return false;
   if (donoDaSolicitacao == null) {
     if (other.donoDaSolicitacao != null) return false;
   } else if (!donoDaSolicitacao.equals(other.donoDaSolicitacao)) return false;
   if (estado == null) {
     if (other.estado != null) return false;
   } else if (!estado.equals(other.estado)) return false;
   if (idCarona == null) {
     if (other.idCarona != null) return false;
   } else if (!idCarona.equals(other.idCarona)) return false;
   if (idSolicitacao == null) {
     if (other.idSolicitacao != null) return false;
   } else if (!idSolicitacao.equals(other.idSolicitacao)) return false;
   if (origemCaronaSolicitacao == null) {
     if (other.origemCaronaSolicitacao != null) return false;
   } else if (!origemCaronaSolicitacao.equals(other.origemCaronaSolicitacao)) return false;
   if (sugestaoDePontoEncontro == null) {
     if (other.sugestaoDePontoEncontro != null) return false;
   } else if (!sugestaoDePontoEncontro.equals(other.sugestaoDePontoEncontro)) return false;
   if (tipoSolicitacao != other.tipoSolicitacao) return false;
   return true;
 }