// Path: cassandra-spring/cassandra-spring-lucene/src/java/linguagil/cassandra/temperatura/model/PrevisaoTempo.java
// @Entity(name = "previsaotempo")
// public class PrevisaoTempo {
// 
// 	@EmbeddedId
// 	private PrevisaoTempoID id;
// 	
// 	@Column(name = "temperatura")
// 	private Double temperatura;
// 	
// 	@ElementCollection
// 	@Column(name = "temperaturas")
// 	private List<Double> temperaturas;
// 
// 	public PrevisaoTempoID getId() {
// 		return id;
// 	}
// 
// 	public void setId(PrevisaoTempoID id) {
// 		this.id = id;
// 	}
// 
// 	public Double getTemperatura() {
// 		return temperatura;
// 	}
// 
// 	public void setTemperatura(Double temperatura) {
// 		this.temperatura = temperatura;
// 	}
// 
// 	public List<Double> getTemperaturas() {
// 		return temperaturas;
// 	}
// 
// 	public void setTemperaturas(List<Double> temperaturas) {
// 		this.temperaturas = temperaturas;
// 	}
// 	
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (obj instanceof PrevisaoTempo) {
// 			PrevisaoTempo other = PrevisaoTempo.class.cast(obj);
// 			return new EqualsBuilder().append(id, other.id)
// 					.isEquals();
// 		}
// 		return false;
// 	}
// 	@Override
// 	public int hashCode() {
// 		
// 		return new HashCodeBuilder().append(id).toHashCode();
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		
// 		return ToStringBuilder.reflectionToString(this,
// 				ToStringStyle.SHORT_PREFIX_STYLE);
// 	}
// 	
// }
// 
// Path: cassandra-spring/cassandra-spring-lucene/src/java/linguagil/cassandra/temperatura/model/PrevisaoTempoID.java
// public class PrevisaoTempoID implements Serializable {
// 
// 	private static final long serialVersionUID = -3202328496277683345L;
// 	@Column
// 	private String cidade;
// 	@Column
// 	private Date dia;
// 
// 	public String getCidade() {
// 		return cidade;
// 	}
// 
// 	public void setCidade(String cidade) {
// 		this.cidade = cidade;
// 	}
// 
// 	public Date getDia() {
// 		return dia;
// 	}
// 
// 	public void setDia(Date dia) {
// 		this.dia = dia;
// 	}
// 	
// 	
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (obj instanceof PrevisaoTempoID) {
// 			PrevisaoTempoID other = PrevisaoTempoID.class.cast(obj);
// 			return new EqualsBuilder().append(cidade, other.cidade)
// 					.append(dia, other.dia).isEquals();
// 		}
// 		return false;
// 	}
// 	@Override
// 	public int hashCode() {
// 		
// 		return new HashCodeBuilder().append(dia).append(cidade).toHashCode();
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		
// 		return ToStringBuilder.reflectionToString(this,
// 				ToStringStyle.SHORT_PREFIX_STYLE);
// 	}
// }
// 
// Path: cassandra-spring/cassandra-spring-lucene/src/java/linguagil/cassandra/temperatura/repository/PrevisaoTempoRepository.java
// @Repository("previsaoRepository")
// public class PrevisaoTempoRepository extends CassandraRepository<PrevisaoTempo, PrevisaoTempoID>{
// 
// 	
// 	
// 	@Value(value="#{cassandraFactory.template}")
// 	private CassandraTemplate cassandraTemplate;
// 
// 	@Override
// 	protected CassandraTemplate getCassandraTemplate() {
// 		return cassandraTemplate;
// 	}
// 
// 	public UpdateBuilder<PrevisaoTempo> updateBuilder(PrevisaoTempoID id) {
// 		return cassandraTemplate.updateBuilder(PrevisaoTempo.class, id);
// 	}
// 
// 	
// }


import java.util.Date;
import linguagil.cassandra.temperatura.model.PrevisaoTempo;
import linguagil.cassandra.temperatura.model.PrevisaoTempoID;
import linguagil.cassandra.temperatura.repository.PrevisaoTempoRepository;
import org.easycassandra.persistence.cassandra.UpdateBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
package linguagil.cassandra.temperatura.service;




@Service
public class PrevisaoService extends AbstractService{

	@Autowired
	private PrevisaoTempoRepository repository;
	
	@Autowired
	private PrevisaoMediaService mediaService;

	public void inserir(PrevisaoTempoID id, double temperatura) {
		Date dia = limparDia(id.getDia());
		id.setDia(dia);
		
		UpdateBuilder<PrevisaoTempo> updateBuilder = repository.updateBuilder(id);
		updateBuilder.addList("temperaturas", temperatura).value("temperatura", temperatura);
		updateBuilder.executeAsync();
		
		mediaService.atualizar(id);
	}
	
// Path: cassandra-spring/cassandra-spring-lucene/src/java/linguagil/cassandra/temperatura/model/PrevisaoTempo.java
// @Entity(name = "previsaotempo")
// public class PrevisaoTempo {
// 
// 	@EmbeddedId
// 	private PrevisaoTempoID id;
// 	
// 	@Column(name = "temperatura")
// 	private Double temperatura;
// 	
// 	@ElementCollection
// 	@Column(name = "temperaturas")
// 	private List<Double> temperaturas;
// 
// 	public PrevisaoTempoID getId() {
// 		return id;
// 	}
// 
// 	public void setId(PrevisaoTempoID id) {
// 		this.id = id;
// 	}
// 
// 	public Double getTemperatura() {
// 		return temperatura;
// 	}
// 
// 	public void setTemperatura(Double temperatura) {
// 		this.temperatura = temperatura;
// 	}
// 
// 	public List<Double> getTemperaturas() {
// 		return temperaturas;
// 	}
// 
// 	public void setTemperaturas(List<Double> temperaturas) {
// 		this.temperaturas = temperaturas;
// 	}
// 	
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (obj instanceof PrevisaoTempo) {
// 			PrevisaoTempo other = PrevisaoTempo.class.cast(obj);
// 			return new EqualsBuilder().append(id, other.id)
// 					.isEquals();
// 		}
// 		return false;
// 	}
// 	@Override
// 	public int hashCode() {
// 		
// 		return new HashCodeBuilder().append(id).toHashCode();
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		
// 		return ToStringBuilder.reflectionToString(this,
// 				ToStringStyle.SHORT_PREFIX_STYLE);
// 	}
// 	
// }
// 
// Path: cassandra-spring/cassandra-spring-lucene/src/java/linguagil/cassandra/temperatura/model/PrevisaoTempoID.java
// public class PrevisaoTempoID implements Serializable {
// 
// 	private static final long serialVersionUID = -3202328496277683345L;
// 	@Column
// 	private String cidade;
// 	@Column
// 	private Date dia;
// 
// 	public String getCidade() {
// 		return cidade;
// 	}
// 
// 	public void setCidade(String cidade) {
// 		this.cidade = cidade;
// 	}
// 
// 	public Date getDia() {
// 		return dia;
// 	}
// 
// 	public void setDia(Date dia) {
// 		this.dia = dia;
// 	}
// 	
// 	
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (obj instanceof PrevisaoTempoID) {
// 			PrevisaoTempoID other = PrevisaoTempoID.class.cast(obj);
// 			return new EqualsBuilder().append(cidade, other.cidade)
// 					.append(dia, other.dia).isEquals();
// 		}
// 		return false;
// 	}
// 	@Override
// 	public int hashCode() {
// 		
// 		return new HashCodeBuilder().append(dia).append(cidade).toHashCode();
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		
// 		return ToStringBuilder.reflectionToString(this,
// 				ToStringStyle.SHORT_PREFIX_STYLE);
// 	}
// }
// 
// Path: cassandra-spring/cassandra-spring-lucene/src/java/linguagil/cassandra/temperatura/repository/PrevisaoTempoRepository.java
// @Repository("previsaoRepository")
// public class PrevisaoTempoRepository extends CassandraRepository<PrevisaoTempo, PrevisaoTempoID>{
// 
// 	
// 	
// 	@Value(value="#{cassandraFactory.template}")
// 	private CassandraTemplate cassandraTemplate;
// 
// 	@Override
// 	protected CassandraTemplate getCassandraTemplate() {
// 		return cassandraTemplate;
// 	}
// 
// 	public UpdateBuilder<PrevisaoTempo> updateBuilder(PrevisaoTempoID id) {
// 		return cassandraTemplate.updateBuilder(PrevisaoTempo.class, id);
// 	}
// 
// 	
// }


// Path: cassandra-spring/cassandra-spring-lucene/src/java/linguagil/cassandra/temperatura/service/PrevisaoService.java
import java.util.Date;
import linguagil.cassandra.temperatura.model.PrevisaoTempo;
import linguagil.cassandra.temperatura.model.PrevisaoTempoID;
import linguagil.cassandra.temperatura.repository.PrevisaoTempoRepository;
import org.easycassandra.persistence.cassandra.UpdateBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

package linguagil.cassandra.temperatura.service;




@Service
public class PrevisaoService extends AbstractService{

	@Autowired
	private PrevisaoTempoRepository repository;
	
	@Autowired
	private PrevisaoMediaService mediaService;

	public void inserir(PrevisaoTempoID id, double temperatura) {
		Date dia = limparDia(id.getDia());
		id.setDia(dia);
		
		UpdateBuilder<PrevisaoTempo> updateBuilder = repository.updateBuilder(id);
		updateBuilder.addList("temperaturas", temperatura).value("temperatura", temperatura);
		updateBuilder.executeAsync();
		
		mediaService.atualizar(id);
	}
	
	public PrevisaoTempo findById(PrevisaoTempoID id) {