@RemotingInclude
 @Transactional(readOnly = true)
 public Programacao searchByProgramacaoAtualAndPerfil(Perfil perfil) {
   try {
     return programacaoDAO.searchByProgramacaoAtualAndPerfil(perfil);
   } catch (Exception e) {
     e.printStackTrace();
   }
   return null;
 }
 @RemotingInclude
 @Transactional
 public Programacao persist(Programacao obj) {
   try {
     for (Conteudo conteudo : obj.getListConteudo()) {
       if (conteudo.getArquivo() != null) {
         String nomeArquivo = new Date().getTime() + conteudo.getUrl();
         if (conteudo.getTipo() == Conteudo.TIPO_VIDEO) {
           conteudo.setUrl(ServidorConfig.PATH_SERVIDOR_STREAM + nomeArquivo);
           conteudo.setUrlVideoRmtp(ServidorConfig.PATH_RMTP_STREAM + nomeArquivo);
         }
         if (conteudo.getTipo() == Conteudo.TIPO_INFORMACAO_IMAGEM) {
           conteudo.setUrl(
               ServidorConfig.PATH_SERVIDOR_ARQUIVOS + new Date().getTime() + conteudo.getUrl());
         }
         UpDownFile.doUpload(conteudo.getArquivo(), conteudo.getUrl());
       }
     }
     return programacaoDAO.persist(obj);
   } catch (Exception e) {
     e.printStackTrace();
     return null;
   }
 }
 @RemotingInclude
 @Transactional(readOnly = true)
 public List<Programacao> searchByPerfil(Perfil perfil) {
   return programacaoDAO.searchByPerfil(perfil);
 }
 @RemotingInclude
 @Transactional(readOnly = true)
 public Programacao searchById(long id) {
   return programacaoDAO.searchById(id);
 }
 @RemotingInclude
 @Transactional(readOnly = false)
 public List<Programacao> searchAll() {
   return programacaoDAO.searchAll();
 }
 @RemotingInclude
 @Transactional
 public boolean remove(Programacao obj) {
   return programacaoDAO.remove(obj);
 }
 @RemotingInclude
 @Transactional
 public Programacao update(Programacao obj) {
   return programacaoDAO.update(obj);
 }
 @RemotingInclude
 @Transactional(readOnly = true)
 public boolean existAtualizacaoProgramacao(Programacao programacaoAtual) {
   return programacaoDAO.existAtualizacaoProgramacao(programacaoAtual);
 }
 @RemotingInclude
 @Transactional(readOnly = true)
 public boolean existChoquePeriodoProgramacao(Programacao programacao) {
   return programacaoDAO.existChoquePeriodoProgramacao(programacao);
 }
 @RemotingInclude
 @Transactional(readOnly = true)
 public List<Programacao> searchByUltimasProgramacao() {
   return programacaoDAO.searchByUltimasProgramacao();
 }
 @RemotingInclude
 @Transactional(readOnly = true)
 public List<Programacao> searchByDataFim(Date dataInicio, Date dataFim) {
   return programacaoDAO.searchByDataFim(dataInicio, dataFim);
 }