package br.com.dextra.dextranet.banner; import java.util.Date; import br.com.dextra.dextranet.persistencia.Entidade; import br.com.dextra.dextranet.utils.ConteudoHTML; import br.com.dextra.dextranet.utils.TimeMachine; import com.google.appengine.api.blobstore.BlobKey; import com.google.appengine.api.datastore.Entity; import com.google.appengine.api.images.ImagesService; import com.google.appengine.api.images.ImagesServiceFactory; import com.google.appengine.api.images.ServingUrlOptions; public class Banner extends Entidade { private BlobKey imagem; private String imagemUrl; private String titulo; private String link; private Date dataInicio; private Date dataFim; private String usuario; private Date dataDeAtualizacao; public Banner(String titulo, String link, Date dataInicio, Date dataFim, String usuario) { ConteudoHTML conteudoHTML = new ConteudoHTML(titulo); this.titulo = conteudoHTML.removeJavaScript(); conteudoHTML.setConteudo(link); this.link = conteudoHTML.removeJavaScript(); this.usuario = usuario; TimeMachine timeMachine = new TimeMachine(); this.dataInicio = timeMachine.inicioDoDia(dataInicio); this.dataFim = timeMachine.fimDoDia(dataFim); this.dataDeAtualizacao = timeMachine.dataAtual(); } public Banner(Entity bannerEntity) { this.id = (String) bannerEntity.getProperty(BannerFields.id.name()); this.titulo = (String) bannerEntity.getProperty(BannerFields.titulo.name()); this.link = (String) bannerEntity.getProperty(BannerFields.link.name()); this.dataInicio = (Date) bannerEntity.getProperty(BannerFields.dataInicio.name()); this.dataFim = (Date) bannerEntity.getProperty(BannerFields.dataFim.name()); this.usuario = (String) bannerEntity.getProperty(BannerFields.usuario.name()); this.dataDeAtualizacao = (Date) bannerEntity.getProperty(BannerFields.dataAtualizacao.name()); this.imagem = (BlobKey) bannerEntity.getProperty(BannerFields.imagem.name()); this.imagemUrl = (String) bannerEntity.getProperty(BannerFields.imagemUrl.name()); } public void adicionaImagem(BlobKey imagem) { this.imagem = imagem; ImagesService imageService = ImagesServiceFactory.getImagesService(); this.imagemUrl = imageService.getServingUrl(ServingUrlOptions.Builder.withBlobKey(this.imagem)); } public boolean estaVigente() { Date agora = new TimeMachine().dataAtual(); return agora.after(this.dataInicio) && agora.before(this.dataFim); } public BlobKey getImagem() { return imagem; } public String getImagemUrl() { return imagemUrl; } public String getTitulo() { return titulo; } public String getLink() { return link; } public Date getDataInicio() { return dataInicio; } public Date getDataFim() { return dataFim; } public String getUsuario() { return usuario; } public Date getDataDeAtualizacao() { return dataDeAtualizacao; } @Override public Entity toEntity() { Entity entidade = new Entity(this.getKey(this.getClass())); entidade.setProperty(BannerFields.id.name(), this.id); entidade.setProperty(BannerFields.titulo.name(), this.titulo); entidade.setProperty(BannerFields.link.name(), this.link); entidade.setProperty(BannerFields.dataInicio.name(), this.dataInicio); entidade.setProperty(BannerFields.dataFim.name(), this.dataFim); entidade.setProperty(BannerFields.usuario.name(), this.usuario); entidade.setProperty(BannerFields.dataAtualizacao.name(), this.dataDeAtualizacao); entidade.setProperty(BannerFields.imagem.name(), this.imagem); entidade.setProperty(BannerFields.imagemUrl.name(), this.imagemUrl); return entidade; } @Override public String toString() { return "Banner [imagem=" + imagem + ", imagemUrl=" + imagemUrl + ", titulo=" + titulo + ", link=" + link + ", dataInicio=" + dataInicio + ", dataFim=" + dataFim + ", usuario=" + usuario + ", dataDeAtualizacao=" + dataDeAtualizacao + "]"; } }