public function retornaSoftwareDetalhado(Software $software)
 {
     if ($software->getId()) {
         //Pega dados do software.
         $idSoftware = $software->getId();
         $selectSoftware = "Select * From software Where id_software = {$idSoftware}";
         $result = $this->conexao->query($selectSoftware);
         foreach ($result as $linha) {
             $software->setLinguagem($linha['linguagem']);
             $software->setNome($linha['nome']);
         }
         //Buscaremos dados a respeito do banco de dados escolhido.
         $selectBanco = "SELECT * FROM banco_de_dados WHERE software_id_software";
         $result = $this->conexao->query($selectBanco);
         $banco = new BancoDeDados();
         foreach ($result as $linha) {
             $banco->setSistemaGerenciadorDeBancoDeDados($linha['sistema_gerenciador_de_banco']);
             $banco->setNomeDoBanco($linha['nome_do_banco']);
             $banco->setHost($linha['host']);
             $banco->setPass($linha['pass']);
             $banco->setUsuario($linha['usuario']);
         }
         if ($banco) {
             $software->setBancoDeDados($banco);
         }
         //Pegaremos agora a lista de Objetos
         //Aqui também podemos buscar os atributos, mas implementarei isso daqui a pouco
         $selectObjetos = "SELECT * FROM objeto WHERE software_id_software = {$idSoftware}";
         $result = $this->conexao->query($selectObjetos);
         foreach ($result as $linha) {
             $objeto = new Objeto();
             $objeto->setNome($linha['nome']);
             $objeto->setPersistencia($linha['persistencia']);
             $objeto->setId($linha['id_objeto']);
             $idObjeto = $linha['id_objeto'];
             $selectAtributo = "SELECT * FROM atributo WHERE objeto_id_objeto = {$idObjeto}";
             $resultAtributo = $this->conexao->query($selectAtributo);
             foreach ($resultAtributo as $linhaatributo) {
                 $atributo = new Atributo();
                 $atributo->setId($linhaatributo['id_atributo']);
                 $atributo->setNome($linhaatributo['nome']);
                 $atributo->setTipo($linhaatributo['tipo']);
                 $atributo->setIndice($linhaatributo['indice']);
                 $atributo->setTipoDeRelacionamentoComObjeto($linhaatributo['relacionamento_com_objeto']);
                 $objeto->addAtributo($atributo);
             }
             $software->addObjetoNaLista($objeto);
         }
         return $software;
     } else {
         return null;
     }
 }
 /**
  * Este serve para inserir objeto em um software.  
  * @param Objeto $objeto
  * @param Software $software
  * @return boolean
  */
 public function inserir(Objeto $objeto, Software $software)
 {
     $idSoftware = $software->getId();
     $nomeDoObjeto = $objeto->getNome();
     $persistenciaObjeto = $objeto->getPersistencia();
     $insert = "INSERT into objeto\n\t\t(software_id_software, nome, persistencia) \n\t\tvalues({$idSoftware}, '{$nomeDoObjeto}', '{$persistenciaObjeto}')";
     if ($this->conexao->query($insert)) {
         return true;
     } else {
         //echo "<br>".$insert;
         return false;
     }
 }
 public function updateSoftware(ComputadoraSoftware $entity, Software $software)
 {
     $entity->setSoftware($software->getId());
     return $this->persistenceManager->update($entity);
 }