Olá pessoal,faz um tempo que eu não apareço por aqui.
Bom o meu problema é o seguinte:
toda vez que eu tento selecionar um item do meu datatable,dá erro,o engraçado é que a tabela é preenchida,mas quando eu tento selecionar o erro acontece.Por favor me ajudem aí please.
o erro:
Advertência: /listainterpolada.xhtml @54,35 value="#{interpolacaoBean.listadecoordenadas}": Error reading ‘listadecoordenadas’ on type br.com.preditor.bean.InterpolacaoBean
javax.el.ELException: /listainterpolada.xhtml @54,35 value="#{interpolacaoBean.listadecoordenadas}": Error reading ‘listadecoordenadas’ on type br.com.preditor.bean.InterpolacaoBean
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIData.getValue(UIData.java:731)
at org.primefaces.component.datatable.DataTable.getValue(DataTable.java:740)
at javax.faces.component.UIData.getDataModel(UIData.java:1798)
at javax.faces.component.UIData.setRowIndexWithoutRowStatePreserved(UIData.java:484)
at javax.faces.component.UIData.setRowIndex(UIData.java:473)
at javax.faces.component.UIData.iterate(UIData.java:1927)
at javax.faces.component.UIData.processDecodes(UIData.java:1161)
at org.primefaces.component.datatable.DataTable.processDecodes(DataTable.java:531)
at javax.faces.component.UIForm.processDecodes(UIForm.java:225)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)
at org.primefaces.component.layout.Layout.processDecodes(Layout.java:238)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:933)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:322)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:184)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:155)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
at br.com.preditor.dao.AreaDAO.obterInterpolacaoPormes(AreaDAO.java:135)
at br.com.preditor.dao.AreaDAO.listarInterpolacaomes(AreaDAO.java:219)
at br.com.preditor.rn.InterpolacaoRN.listarcoordmes(InterpolacaoRN.java:27)
at br.com.preditor.bean.InterpolacaoBean.getInterpolacaoMes(InterpolacaoBean.java:372)
at br.com.preditor.bean.InterpolacaoBean.getListadecoordenadas(InterpolacaoBean.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:87)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
… 71 more
Página web:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<script src="http://maps.google.com/maps/api/js?sensor=true"
type="text/javascript"></script>
<h:head>
<title>Preditor Web</title>
</h:head>
<h:body>
<p:layout fullPage="true">
<p:layoutUnit position="north" size="70">
<center> <p:graphicImage style="width: 95%" value="/img/final.png" /></center>
</p:layoutUnit>
<p:layoutUnit position="west" size="200" collapsible="true">
<h:form>
<p:menu style="width: 98%">
<p:submenu label="Coordenadas com temperatura desconhecida" >
<p:menuitem value="Voltar ao menu anterior"
action="/listas/listadearea.xhtml"
icon="ui-icon ui-extlink"
ajax="false"/>
<p:menuitem value="Voltar a Página inicial"
action="/publico/index.xhtml"
icon="ui-icon ui-icon-power"
ajax="false"/>
</p:submenu>
</p:menu>
<h:outputLink value="#{facesContext.externalContext.requestContextPath}/j_spring_security_logout">
<h2> <h:outputText value="Logout"/></h2>
</h:outputLink>
</h:form>
</p:layoutUnit>
<p:layoutUnit position="center">
<h:form >
<h:inputHidden value="#{interpolacaoBean.area}"
>
<f:converter converterId="conversorArea"/>
</h:inputHidden>
<p:dataTable id="tabela"
var="coordenada"
value="#{interpolacaoBean.listadecoordenadas}"
selection="#{interpolacaoBean.coordenada}"
selectionMode="single"
rowKey="#{coordenada}"
>
<p:column>
<f:facet name="header">
<h:outputText value="id"/>
</f:facet>
<h:outputText value="#{coordenada.id}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Latitude"/>
</f:facet>
<h:outputText value="#{coordenada.latitude}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Longitude"/>
</f:facet>
<h:outputText value="#{coordenada.longitude}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Marcar"/>
</f:facet>
<p:commandLink
value="Marcar"
action="#{interpolacaoBean.marcar}"
ajax="false">
</p:commandLink>
</p:column>
</p:dataTable>
<!-- <h2><h:outputText value="Total: " /></h2>-->
</h:form>
</p:layoutUnit>
<p:layoutUnit position="east" size="800">
<p:growl
id="messages"
showDetail="true"
/>
<p:gmap id="gmap"
center="#{interpolacaoBean.centro}"
disableDoubleClickZoom="true"
zoom="7"
type="HYBRID"
disableDefaultUI="true"
style="width:800px;height:600px"
model="#{interpolacaoBean.emptyModel}"
widgetVar="map"
draggable="false"
/>
</p:layoutUnit>
</p:layout>
</h:body>
</html>
meu Bean:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.preditor.bean;
import br.com.preditor.entidades.Area;
import br.com.preditor.entidades.Coordenada;
import br.com.preditor.entidades.Informacao;
import br.com.preditor.rn.AreaRN;
import br.com.preditor.rn.CoordenadaRN;
import br.com.preditor.rn.InterpolacaoRN;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.primefaces.model.map.*;
/**
*
* @author marcos
*/
@ManagedBean
public class InterpolacaoBean {
private double p1;
private double c1;
private double c2;
private double p2;
private double p3;
private double p4;
private int idcoord;
private int mes;
private int ano;
private int mesinicio;
private int mesfim;
private int anoinicio;
private int anofim;
private int total;
private String escrevermes;
private Area area = new Area();
private String centro;
private MapModel emptyModel = new DefaultMapModel();
private List<Coordenada> interpolacaoMes;
private List<Coordenada> interpolacaoAno;
private List<Coordenada> listapormes;
private ArrayList<Informacao> informacoes = new ArrayList<Informacao>();
private ArrayList<Coordenada> coordenadas = new ArrayList<Coordenada>();
private final InterpolacaoRN intRN = new InterpolacaoRN();
private AreaRN areaRN = new AreaRN();
private DecimalFormat formatador = new DecimalFormat("#####,###");
private Coordenada coordenada = new Coordenada();
private CoordenadaRN coordenadaRN = new CoordenadaRN();
private DataModel listacoordenada;
public DataModel getListadecoordenadas() {
if (!getInterpolacaoMes().isEmpty()) {
List<Coordenada> lista = getInterpolacaoMes();
listacoordenada = new ListDataModel(lista);
}
return listacoordenada;
}
public DataModel getListacoordenada() {
return listacoordenada;
}
public void setListacoordenada(DataModel listacoordenada) {
this.listacoordenada = listacoordenada;
}
public String getCentro() {
Coordenada pontoCentral = areaRN.pontoCentral(area);
double lat = pontoCentral.getLatitude().doubleValue();
double lng = pontoCentral.getLongitude().doubleValue();
formatador.format(lat);
formatador.format(lng);
String center = String.valueOf(lat) + "," + String.valueOf(lng);
System.out.println(center);
return center;
}
public int getTotal() {
if (!interpolacaoMes.isEmpty()) {
total = interpolacaoMes.size();
} else if (!interpolacaoAno.isEmpty()) {
total = interpolacaoAno.size();
}
return total;
}
public void setTotal(int total) {
this.total = total;
}
public String getEscrevermes() {
if (mes == 1) {
escrevermes = "janeiro";
} else if (mes == 2) {
escrevermes = "fevereiro";
} else if (mes == 3) {
escrevermes = "março";
} else if (mes == 4) {
escrevermes = "abril";
} else if (mes == 5) {
escrevermes = "maio";
} else if (mes == 6) {
escrevermes = "junho";
} else if (mes == 7) {
escrevermes = "julho";
} else if (mes == 8) {
escrevermes = "agosto";
} else if (mes == 9) {
escrevermes = "setembro";
} else if (mes == 10) {
escrevermes = "outubro";
} else if (mes == 11) {
escrevermes = "novembro";
} else if (mes == 12) {
escrevermes = "dezembro";
}
return escrevermes;
}
public void setEscrevermes(String escrevermes) {
this.escrevermes = escrevermes;
}
public ArrayList<Informacao> getInformacoes() {
return informacoes;
}
public void setInformacoes(ArrayList<Informacao> informacoes) {
this.informacoes = informacoes;
}
public ArrayList<Coordenada> getCoordenadas() {
if (getInterpolacaoMes() != null) {
for (Coordenada c : getInterpolacaoMes()) {
coordenadas.add(c);
}
}
return coordenadas;
}
public void setCoordenadas(ArrayList<Coordenada> coordenadas) {
this.coordenadas = coordenadas;
}
public void setCentro(String centro) {
this.centro = centro;
}
public MapModel getEmptyModel() {
return emptyModel;
}
public void setEmptyModel(MapModel emptyModel) {
this.emptyModel = emptyModel;
}
public int getAno() {
return ano;
}
public void setAno(int ano) {
this.ano = ano;
}
public int getAnofim() {
return anofim;
}
public void setAnofim(int anofim) {
this.anofim = anofim;
}
public int getAnoinicio() {
return anoinicio;
}
public void setAnoinicio(int anoinicio) {
this.anoinicio = anoinicio;
}
public Area getArea() {
return area;
}
public void setArea(Area area) {
this.area = area;
}
public int getMes() {
return mes;
}
public void setMes(int mes) {
this.mes = mes;
}
public int getMesfim() {
return mesfim;
}
public void setMesfim(int mesfim) {
this.mesfim = mesfim;
}
public int getMesinicio() {
return mesinicio;
}
public void setMesinicio(int mesinicio) {
this.mesinicio = mesinicio;
}
public int getIdcoord() {
return idcoord;
}
public void setIdcoord(int idcoord) {
this.idcoord = idcoord;
}
public String iniciaInterpolacao() {
if (area == null) {
area = new Area();
AreaRN arn = new AreaRN();
Coordenada noroeste = new Coordenada();
Coordenada sudeste = new Coordenada();
noroeste.setLatitude(BigDecimal.valueOf(p1));
noroeste.setLongitude(BigDecimal.valueOf(p2));
sudeste.setLatitude(BigDecimal.valueOf(p3));
sudeste.setLongitude(BigDecimal.valueOf(p4));
noroeste = arn.obterCoordenaMaisProxima(noroeste);
sudeste = arn.obterCoordenaMaisProxima(sudeste);
area.setNoroeste(noroeste);
area.setSudeste(sudeste);
// area = arn.obterPorCoordenada(noroeste, sudeste);
arn.salvar(area);
area = arn.obterUltimo();
}
desenhar();
return "/formInterpolacao.xhtml";
}
public void interpolar() {
if (!getInterpolacaoMes().isEmpty()) { // InterpolacaoRN inrn = new InterpolacaoRN();
System.out.println("okokokok");
for (Coordenada coordenada : getInterpolacaoMes()) {
// boolean teste = areaRN.testedeTerrames(coordenada, mes);
// if (teste != false) {
LatLng coord = new LatLng(coordenada.getLatitude().doubleValue(),
coordenada.getLongitude().doubleValue());
Marker c1 = new Marker(coord, "nuvem");
c1.setFlat(true);
//ICON X
c1.setIcon("http://nhw.pl/images/cross.png");
//ICON DE NUVEM
//c1.setIcon("http://qal.lylatcentral.com/images/buttons/socialnetworking/large-weather-icons/hot/png/16x16/Blizzard.png");
emptyModel.addOverlay(c1);
}
}
if (!getInterpolacaoAno().isEmpty()) {
for (Coordenada coordenada : getInterpolacaoAno()) {
boolean teste = areaRN.testedeTerraano(coordenada, ano);
if (teste != false) {
LatLng coord = new LatLng(coordenada.getLatitude().doubleValue(),
coordenada.getLongitude().doubleValue());
Marker c1 = new Marker(coord, "nuvem");
c1.setFlat(true);
//ICON X
c1.setIcon("http://nhw.pl/images/cross.png");
//ICON DE NUVEM
//c1.setIcon("http://qal.lylatcentral.com/images/buttons/socialnetworking/large-weather-icons/hot/png/16x16/Blizzard.png");
emptyModel.addOverlay(c1);
}
}
}
}
public void desenhar() {
LatLng coord1 = new LatLng(p1, p2);
LatLng coord2 = new LatLng(p3, p4);
// //Basic marker
// emptyModel = new DefaultMapModel();
emptyModel.addOverlay(new Marker(coord1, "" + p1 + ", " + p2));
emptyModel.addOverlay(new Marker(coord2, "" + p3 + ", " + p4));
LatLngBounds ll = new LatLngBounds(coord1, coord2);
Rectangle r = new Rectangle(ll);
r.setStrokeColor("#d93c3c");
r.setFillColor("#d93c3c");
r.setFillOpacity(0.5);
emptyModel.addOverlay(r);
// LatLng coord1 = new LatLng(area.getNoroeste().getLatitude().doubleValue(),
// area.getNoroeste().getLongitude().doubleValue());
// LatLng coord2 = new LatLng(area.getSudeste().getLatitude().doubleValue(),
// area.getSudeste().getLongitude().doubleValue());
// emptyModel.addOverlay(new Marker(coord1, "" + area.getNoroeste().getLatitude().doubleValue() + ", "
// + area.getNoroeste().getLongitude().doubleValue()));
// emptyModel.addOverlay(new Marker(coord2, "" + area.getSudeste().getLatitude().doubleValue() + ", "
// + area.getSudeste().getLongitude().doubleValue()));
// LatLngBounds ll = new LatLngBounds(coord1, coord2);
// Rectangle r = new Rectangle(ll);
// r.setStrokeColor("#d93c3c");
// r.setFillColor("#d93c3c");
// r.setFillOpacity(0.5);
// emptyModel.addOverlay(r);
}
public void listarInterpolacaomes() {
}
public void listarInterpolacaoano() {
if (!getInterpolacaoAno().isEmpty()) {
for (Coordenada coordenada : getInterpolacaoAno()) {
for (Informacao i : coordenada.getInformacaoList()) {
if (i.getAno() == ano) {
boolean terra = areaRN.testedeTerraano(coordenada, mes);
if (terra == true && i.getTemperatura().doubleValue() > 60000) {
informacoes.add(i);
break;
}
}
}
}
}
}
public String listarInterpolacao() {
// String temp = null;
// if (!getListapormes().isEmpty()) {
// temp = "/listainterpolada.xhtml";
// } else if (!getInterpolacaoAno().isEmpty()) {
// listarInterpolacaoano();
// temp = "/listainterpoladaano.xhtml";
// }
return "/listainterpolada.xhtml";
}
public void marcar() {
LatLng coord1 = new LatLng(coordenada.getLatitude().doubleValue(), coordenada.getLongitude().doubleValue());
emptyModel.addOverlay(new Marker(coord1, "" + coordenada.getLatitude().doubleValue() + ", " + coordenada.getLongitude().doubleValue()));
// Marker marker;
// for (int i = 0; i < interpolacaoMes.size(); i = i ++) {
// coord = interpolacaoMes.get(i);
// marker = new Marker(new LatLng(coord.getLatitude().doubleValue(),coord.getLongitude().doubleValue()), "");
// marker.setFlat(true);
// emptyModel.addOverlay(marker);
}
public List<Coordenada> getInterpolacaoAno() {
interpolacaoAno = intRN.interpolacaoAno(area, ano);
return interpolacaoAno;
}
public void setInterpolacaoAno(List<Coordenada> interpolacaoAno) {
this.interpolacaoAno = interpolacaoAno;
}
public List<Coordenada> getInterpolacaoMes() {
interpolacaoMes = intRN.listarcoordmes(area, mes);
return interpolacaoMes;
}
public void setInterpolacaoMes(List<Coordenada> interpolacaoMes) {
this.interpolacaoMes = interpolacaoMes;
}
public List<Coordenada> getListapormes() {
listapormes = intRN.interpolacaoMes(area, mes);
return listapormes;
}
public void setListapormes(List<Coordenada> listapormes) {
this.listapormes = listapormes;
}
public double getP1() {
return p1;
}
public void setP1(double p1) {
this.p1 = p1;
}
public double getP2() {
return p2;
}
public void setP2(double p2) {
this.p2 = p2;
}
public double getP3() {
return p3;
}
public void setP3(double p3) {
this.p3 = p3;
}
public double getP4() {
return p4;
}
public void setP4(double p4) {
this.p4 = p4;
}
public Coordenada getCoordenada() {
return coordenada;
}
public void setCoordenada(Coordenada coordenada) {
this.coordenada = coordenada;
}
public double getC1() {
return c1;
}
public void setC1(double c1) {
this.c1 = c1;
}
public double getC2() {
return c2;
}
public void setC2(double c2) {
this.c2 = c2;
}
}
meu RN:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.preditor.rn;
import br.com.preditor.dao.AreaDAO;
import br.com.preditor.dao.GenericDAO;
import br.com.preditor.entidades.Area;
import br.com.preditor.entidades.Coordenada;
import java.util.List;
/**
*
* @author fabio
*/
public class InterpolacaoRN extends GenericDAO<Coordenada> {
private final AreaDAO dao = new AreaDAO();
public List<Coordenada> interpolacaoMes(Area area, int mes) {
return dao.obterInterpolacaoPormes(area.getNoroeste(), area.getSudeste(), mes);
}
public List<Coordenada> listarcoordmes(Area area, int mes) {
//return new AreaDAO().obterInterpolacaoPormes(area.getNoroeste(), area.getSudeste(), mes);
return dao.listarInterpolacaomes(area.getNoroeste(), area.getSudeste(), mes);
}
public List<Coordenada> interpolacaoAno(Area area, int ano) {
return dao.obterInterpolacaoPorAno(area.getNoroeste(), area.getSudeste(), ano);
}
}
meu DAO
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.preditor.dao;
import br.com.preditor.entidades.*;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Query;
/**
*
* @author fabio
*/
public class AreaDAO extends GenericDAO<Area> {
public Area obter(Coordenada noroeste, Coordenada sudeste) {
String query = " SELECT a FROM Area a "
+ " WHERE a.noroeste = :noroeste and a.sudeste = :sudeste";
final Query q = getEntityManager().
createQuery(query).
setParameter("noroeste", noroeste).
setParameter("sudeste", sudeste);
try {
return (Area) q.getSingleResult();
} catch (Exception e) {
return null;
}
}
public List<Area> obterMediaHistorica(Coordenada noroeste,
Coordenada sudeste,
Integer mes) {
String query = " SELECT a FROM Area a "
+ " join a.informacaoAreaList il"
+ " WHERE il.mes = :mes and"
+ " a.noroeste = :noroeste and "
+ " a.sudeste = :sudeste ";
final Query q = getEntityManager().
createQuery(query).
setParameter("mes", mes).
setParameter("noroeste", noroeste).
setParameter("sudeste", sudeste);
try {
return (List<Area>) q.getResultList();
} catch (Exception e) {
return null;
}
}
public List<Area> obterMediaHistoricaAno(Coordenada noroeste,
Coordenada sudeste,
Integer ano) {
String query = " SELECT a FROM Area a "
+ " join a.informacaoAreaList il"
+ " WHERE il.ano = :ano and"
+ " a.noroeste = :noroeste and "
+ " a.sudeste = :sudeste ";
final Query q = getEntityManager().
createQuery(query).
setParameter("ano", ano).
setParameter("noroeste", noroeste).
setParameter("sudeste", sudeste);
try {
return (List<Area>) q.getResultList();
} catch (Exception e) {
return null;
}
}
public List<Area> obterArea() {
String query = "Area.findAll";
final Query q = getEntityManager().createNamedQuery(query);
try {
return (List<Area>) q.getResultList();
} catch (Exception e) {
return null;
}
}
public List<InformacaoArea> obterAreas() {
String query = "InformacaoArea.findAll";
final Query q = getEntityManager().createNamedQuery(query);
try {
return (List<InformacaoArea>) q.getResultList();
} catch (Exception e) {
return null;
}
}
public List<MediaHistoricaArea> obterMediaareas() {
String query = "MediaHistoricaArea.findAll";
final Query q = getEntityManager().createNamedQuery(query);
try {
return (List<MediaHistoricaArea>) q.getResultList();
} catch (Exception e) {
return null;
}
}
public List<Coordenada> obterInterpolacaoPorAno(Coordenada noroeste,
Coordenada sudeste,
Integer ano) {
String query = " SELECT distinct c FROM Coordenada c "
+ " join c.informacaoList il"
+ " WHERE il.ano = :ano and il.temperatura > 60000 and"
+ " c.latitude between :latSudeste and :latNoroeste and "
+ " c.longitude between :longNoroeste and :longSudeste ";
final Query q = getEntityManager().
createQuery(query).
//setParameter("mes", mes).
setParameter("ano", ano).
setParameter("latNoroeste", noroeste.getLatitude()).
setParameter("latSudeste", sudeste.getLatitude()).
setParameter("longNoroeste", noroeste.getLongitude()).
setParameter("longSudeste", sudeste.getLongitude());
try {
return (List<Coordenada>) q.getResultList();
} catch (Exception e) {
return null;
}
}
public List<Coordenada> obterInterpolacaoPormes(Coordenada noroeste,
Coordenada sudeste,
Integer mes) {
String query = " SELECT c FROM Coordenada c "
+ " join c.informacaoList il"
+ " WHERE il.mes = :mes and il.temperatura > 60000 and"
+ " c.latitude between :latSudeste and :latNoroeste and "
+ " c.longitude between :longNoroeste and :longSudeste ";
final Query q = getEntityManager().
createQuery(query).
setParameter("mes", mes).
// setParameter("ano", ano).
setParameter("latNoroeste", noroeste.getLatitude()).
setParameter("latSudeste", sudeste.getLatitude()).
setParameter("longNoroeste", noroeste.getLongitude()).
setParameter("longSudeste", sudeste.getLongitude());
try {
return (List<Coordenada>) q.getResultList();
} catch (Exception e) {
return null;
}
}
public int obterUltimaArea() {
String query = " SELECT max(a.id) FROM Area a ";
final Query q = getEntityManager().
createQuery(query);
try {
return (Integer) q.getSingleResult();
} catch (Exception e) {
System.out.println("Deu Erro: " + e.getMessage());
return 0;
}
}
public boolean verificarTerrames(Coordenada c, Integer mes) {
int iterador = 0;
CoordenadaDAO coordenadaDAO = new CoordenadaDAO();
List<Coordenada> coordenadas = coordenadaDAO.obter(c, mes);
for (Coordenada c1 : coordenadas) {
for (Informacao inforomacao : c1.getInformacaoList()) {
if (inforomacao.getMes() == mes) {
iterador++;
break;
}
}
}
if (iterador >= 9) {
System.out.println("Você está em terra");
return false;
} else {
System.out.println("Você está no mar");
return true;
}
}
public boolean verificarTerraano(Coordenada c, Integer ano) {
int iterador = 0;
CoordenadaDAO coordenadaDAO = new CoordenadaDAO();
List<Coordenada> coordenadas = coordenadaDAO.obterano(c, ano);
for (Coordenada c1 : coordenadas) {
for (Informacao inforomacao : c1.getInformacaoList()) {
if (inforomacao.getAno() == ano) {
iterador++;
break;
}
}
}
if (ano == 2002 && iterador == 6) {
System.out.println("Você está em terra");
return false;
} else if (ano == 2012 && iterador == 3) {
System.out.println("Você está em terra");
return false;
} else if (ano != 2002 && ano != 2012 && iterador >= 12) {
System.out.println("você está em terra");
return false;
} else {
System.out.println("você está no mar");
return true;
}
}
public ArrayList<Coordenada> listarInterpolacaomes(Coordenada noroeste,
Coordenada sudeste,
Integer mes) {
ArrayList<Coordenada> resposta = new ArrayList<Coordenada>();
List<Informacao> in = null;
List<Coordenada> coord = obterInterpolacaoPormes(noroeste, sudeste, mes);
for (Coordenada c : coord) {
for (Informacao i : c.getInformacaoList()) {
if (i.getMes() == mes) {
boolean terra = verificarTerrames(c, mes);
if (terra == true && i.getTemperatura().doubleValue() > 60000) {
resposta.add(i.getCoordenada());
break;
}
}
}
}
return resposta;
}
public static void main(String[] args) {
System.out.println(new AreaDAO().obterUltimaArea());
}
}