• Aucun résultat trouvé

Correctifs et fichiers de configuration

Dans le document EMC PowerPath pour Windows version 5.0 (Page 36-40)

Nesta seção, é apresentado um protótipo desenvolvido em Java baseado

em RESTful com padrão de troca de dados JSON, utilizando banco de dados

Postgresql. O caso em questão corresponde ao envio de dados a partir de um

módulo Arduíno para o WebService, simulando dados coletados dos sensores e

gravando estes no banco de dados para que posteriormente sejam feitas possíveis

consultas ou alertas a serem enviados ao agricultor.

Devido ao foco do trabalho não ser a parte do banco de dados e nem do

cliente que irá consumir o WebService, será abordado somente as partes básicas

destes dois elementos para que se possa entender e provar o pleno funcionamento

do WebService. Abaixo na Figura 19, o esquema do protótipo em questão.

Figura 19 - Esquema do Protótipo

Fonte: Própria (2014)

A tabela do banco de dados para gerar este modelo chama-se “leituras”,

aonde serão armazenados dados dos sensores que serão enviados ao coletor que

posteriormente enviará as mesmas para o WebService, que fará a persistência dos

dados nesta tabela. Sua estrutura é mostrada na Figura 20.

Figura 20 - Estrutura lógica da tabela leituras.

Em relação ao Cliente que consumirá o WebService, precisamos de uma

classe POJO com os atributos da tabela “leituras” para que possam ser criados os

objetos para enviar ao recurso desejado do WebService. Para o envio destes dados

é necessário uma classe aonde seja criado um Cliente, um recurso (caminho para

aonde enviar os dados), um método (create) para o qual se deseja enviar a

solicitação ao WebService (neste caso é um POST) e um método (close) que fecha

o Cliente após o envio dos dados. Na Figura 21, pode-se ver como ficou a classe

NewJerseyClient que executa estes procedimentos.

Figura 21 - Classe NewJerseyClient no Cliente.

Fonte: Própria (2014)

Estas duas classes descritas acima são chamadas pelo método mount

também no Cliente conforme ilustra na Figura 22, que tem a função de povoar a

classe POJO e chamar o método create da classe NewJerseyClient, afim de enviar

o arquivo no formato JSON ao WebService, e ao final fechar esta conexão do

Cliente.

Figura 22 - Método Mount no Cliente.

Como podemos obsevar na Figura 23, os dados enviados pelo Cliente

através do Arduíno estão sendo gravados com sucesso no banco de dados ao

passarem pelo recurso do WebService. Neste caso, está sendo feito um POST no

recurso Leituras que foi definido no Path do WebService.

Figura 23 - Retorno do Cliente ao Fazer POST no Recurso Leituras

Fonte: Própria (2014)

Constatou-se ainda, que ao fazer uma requisição via HTTP pelo browser no

recurso criado (Figura 24), retorna a lista em formato JSON dos dados inseridos na

tabela Leituras do banco de dados. Esta solicitação caracteriza uma consulta na

requisição GET.

Figura 24 - Consulta via HTTP GET no Recurso Leituras

Fonte: Própria (2014)

Com os códigos e os resultados apresentados acima, demonstra-se o pleno

funcionamento no WebService Leituras, o qual tem a finalidade de receber os dados

enviados pelos sensores ao coletor e este encaminhar ao WebService que

designará ao método create para fazer a inserção destas informações na tabela

Leituras do banco de dados.

CONCLUSÃO

Uma das atividades mais importantes na agricultura de precisão é o

acompanhamento do desenvolvimento da cultura em tempo real e a correção dos

fatores deficientes no instante em que é diagnosticado. A tecnologia possui técnicas

que podem auxiliar na identificação dos fatores que afetam a variação da

produtividade em áreas distintas da lavoura. Estes fatores podem ser a infestação

de pragas que atacam a plantação, de ervas daninhas que concorrem com a planta,

entre outros.

A agricultura de precisão é a nova tendência do mercado agrícola. As

vantagens que podem obter com ela são inúmeras, colheitas mais produtivas, uma

menor poluição devido ao uso reduzido de insumos e consequentemente uma

grande economia. Ela tende a se tornar cada vez mais comum nas propriedades

rurais. As tecnologias hoje existentes já permitem que se tenha um grande

conhecimento das variabilidades encontradas entre as diferentes áreas da

propriedade, o que já proporciona a tomada de decisões com base em dados mais

precisos.

Este trabalho demonstrou o desenvolvimento de uma aplicação na

linguagem de programação Java, baseada em WebServices aonde segue-se

padrões pré-definidos do RESTful juntamente com algumas tecnologias embutidas

como o framework Hibernate, a API Jersey com anotações do JAX-RS, dos quais

pode-se tirar o máximo de proveito no desenvolvimento, segurança e rapidez da

informação a fim de gerenciar o tráfego dos dados e fazer a sincronização entre os

módulos da arquitetura AgroMobile.

O padrão RESTful vem confirmar seu ótimo funcionamento em

WebServices, tornando sua utilização ideal em projetos que necessitam de agilidade

e eficiência na interoperabilidade entre as partes. Por utilizar métodos padrões

HTTP, torna-se amplamente acoplada a qualquer tipo de desenvolvimento em

diferentes linguagens de programação explorando toda arquitetura Web em seu

benefício.

Diante disto, com os recursos de WebServices desenvolvidos neste trabalho

a Arquitetura AgroMobile torna-se totalmente interligada entre seus diversos

módulos, proporcionando a interoperabilidade entre eles.

REFERÊNCIAS

ASSAD, Maria Leonor Lopes; ALMEIDA, Jalcione. Agricultura e sustentabilidade. Contexto, Desafios e Cenários. Artigo publicado Ciência & Ambiente, 2004.

AURÉLIO, Rafael; MORGENSTERN, Marcos; MARAN, Vinicius. UMA DEFINIÇÃO ONTOLÓGICA DO DOMÍNIO DE AGRICULTURA DE PRECISÃO PARA A ARQUITETURA AGROMOBILE. Salão do Conhecimento, 2013.

BAUER, Cristian; KING, Gavin. Java Persistence com Hibernate. Editora Ciência Moderna, 2005. BOEMO, Daniel, Desenvolvimento de Sistemas de Geoprocessamento e tecnologia móvel aplicados à agricultura de precisão. Santa Maria-RS, Abril 2011. Disponível em:

<http://cascavel.cpd.ufsm.br/tede/tde_busca/arquivo.php?codArquivo=3905> Acessado em 09/10/2013.

BRAY, Tim. et al. E.Extensible MarkupLanguage (XML) 1.0 (Fifth Edition), 2008. Disponível em: <http://www.w3.org/TR/REC-xml>, Acessado em 02/11/2013.

CAMPANHOLA, C. Novos significados e desafios. Brasília, DF: Embrapa Informação Tecnológica, 2004.

COMISSÃO DE QUÍMICA E FERTILIDADE DO SOLO. Manual de adubação e de calagem para os estados do Rio Grande do Sul e Santa Catarina. SBCS/NRS. Porto Alegre, 2004.

CROCKFORD, Douglas. JavaScript Object Notation (JSON), Julho 2006. Diponível em <http://www.ietf.org/rfc/rfc4627.txt?number=4627>, Acessado em 02/11/2013.

DUARTE, Katia C.; FALBO, Ricardo A. Uma ontologia de qualidade de software. In: Workshop de Qualidade de Software, João Pessoa. 2000.

EMBRAPA. Rede Agricultura de Precisão (AP 2). O que é Agricultura de Precisão?. Disponível em: <http://www.macroprograma1.cnptia.embrapa.br/redeap2/o-que-e-agricultura-de-precisao> Acessado em 20/11/2013.

GRUBER, Thomas R. Toward principles for the design of ontologies used for knowledge sharing?. International journal of human-computer studies,1995.

KIRSCHNER, S. F. ; MARAN, V. . Um Sistema de Auxílio à Coleta de Dados na Área de Agricultura de Precisão Baseada em Aplicações Móveis. In: XX Seminário de Iniciação Científica - Salão do Conhecimento 2012 - Unijuí, 2012, Ijuí.

MORGENSTERN, M. S. ; AURELIO, R. ; ALVES, R. ; MARAN, V. . Definição de uma Rede de Sensores para a Arquitetura AgroMobile. In: XII Simpósio de Informática da UNIFRA (SIRC), 2013, Santa Maria - RS. Anais do XII Simpósio de Informática da UNIFRA (SIRC), 2013.

OLIVEIRA, Leonardo Eloy. Estado da arte de banco de dados orientados a documento, 2009. Monografia (Conclusão do Curso de Graduação em Ciências Tecnológicas)–Universidade de Fortaleza –UNIFOR, Ceára, 2009.

SILVA, Grace Kelly de Castro; PEREIRA, Patrícia Maria; MAGALHÃES, Geovane. Disponibilização de Serviços Baseados em Localização via Web Services. In: Simpósio Brasileiro de

GeoInformática, GeoInfo. 2004.

SOAP, 2003, “Simple Object Access Protocol” (27 de abril, 2007); Disponível em <http://www.w3.org/TR/soap12 >. Acessado em 02/11/2013.

SUMRA, Rajesh. “Developing JAX-RPC-Based Web Services Using Axis and SOAP”, 2003. Disponível em: <http://www.developer.com/open/article.php/2237251/Developing-JAX-

RPCndashBased-Web-Services-Using-Axis-and-SOAP.htm>, Acessado em 01/11/2013. ZAVALIK, Claudimir. Integração de sistemas de informação através de web services. 2004. Dissertação de Mestrado (Programa de Pós Graduação em Computação)–Universidade Federal do Rio Grande do Sul. Porto Alegre, 2004.

APÊNDICE A

– Classes do Pacote Config

Classe AbstractFacade.java

package config; import java.util.List;

import javax.persistence.EntityManager;

public abstract class AbstractFacade<T> { private Class<T> entityClass;

public AbstractFacade(Class<T> entityClass) { this.entityClass = entityClass;

}

protected abstract EntityManager getEntityManager();

public void create(T entity) {

getEntityManager().persist(entity); }

public void edit(T entity) {

getEntityManager().merge(entity); }

public void remove(T entity) {

getEntityManager().remove(getEntityManager().merge(entity)); }

public T find(Object id) {

return getEntityManager().find(entityClass, id); }

public List<T> findAll() {

javax.persistence.criteria.CriteriaQuery cq =

getEntityManager().getCriteriaBuilder().createQuery(); cq.select(cq.from(entityClass));

return getEntityManager().createQuery(cq).getResultList(); }

public List<T> findRange(int[] range) {

javax.persistence.criteria.CriteriaQuery cq =

getEntityManager().getCriteriaBuilder().createQuery(); cq.select(cq.from(entityClass));

javax.persistence.Query q = getEntityManager().createQuery(cq); q.setMaxResults(range[1] - range[0] + 1);

q.setFirstResult(range[0]); return q.getResultList(); }

public int count() {

javax.persistence.criteria.CriteriaQuery cq =

getEntityManager().getCriteriaBuilder().createQuery(); javax.persistence.criteria.Root<T> rt = cq.from(entityClass); cq.select(getEntityManager().getCriteriaBuilder().count(rt)); javax.persistence.Query q = getEntityManager().createQuery(cq); return ((Long) q.getSingleResult()).intValue();

} }

Classe ApplicationConfig.java

package config; import java.util.Set;

import javax.ws.rs.core.Application;

@javax.ws.rs.ApplicationPath("webresources") public class ApplicationConfig extends Application {

@Override

public Set<Class<?>> getClasses() {

Set<Class<?>> resources = new java.util.HashSet<>(); addRestResourceClasses(resources);

return resources; }

private void addRestResourceClasses(Set<Class<?>> resources) { resources.add(recursos.AnoagricolaFacadeREST.class); resources.add(recursos.CidadeFacadeREST.class); resources.add(recursos.CultivaresFacadeREST.class); resources.add(recursos.CulturaFacadeREST.class); resources.add(recursos.EspeciemFacadeREST.class); resources.add(recursos.EstadioFacadeREST.class); resources.add(recursos.EventoscFacadeREST.class); resources.add(recursos.GlebaFacadeREST.class); resources.add(recursos.GlebasvinculadasFacadeREST.class); resources.add(recursos.ItemplanjFacadeREST.class); resources.add(recursos.LeiturasFacadeREST.class); resources.add(recursos.MonitoramentoFacadeREST.class); resources.add(recursos.PlanejamentoFacadeREST.class); resources.add(recursos.PontoamostraFacadeREST.class); resources.add(recursos.ProdutoFacadeREST.class); resources.add(recursos.ProdutorFacadeREST.class); resources.add(recursos.PropriedadeFacadeREST.class); resources.add(recursos.SafraFacadeREST.class); resources.add(recursos.TecnicoFacadeREST.class); resources.add(recursos.VariedadesFacadeREST.class); resources.add(recursos.VariedadesglebaFacadeREST.class); } }

APÊNDICE B – Classes do Pacote Entidades

Classe Anoagriola.java

package entidades; import java.io.Serializable; import java.util.Collection; import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; @Entity @Table(name = "anoagricola") @XmlRootElement @NamedQueries({

@NamedQuery(name = "Anoagricola.findAll", query = "SELECT a FROM Anoagricola a"),

@NamedQuery(name = "Anoagricola.findByIdAnoagricola", query = "SELECT a FROM Anoagricola a WHERE a.idAnoagricola = :idAnoagri cola"), @NamedQuery(name = "Anoagricola.findByDescricao", query = "SELECT a FROM Anoagricola a WHERE a.descricao = :descricao"), @NamedQuery(name = "Anoagricola.findByAnoinicial", query = "SELECT a FROM Anoagricola a WHERE a.anoinicial = :anoinicial"), @NamedQuery(name = "Anoagricola.findByCondicao", query = "SELECT a FROM Anoagricola a WHERE a.condicao = :condicao"),

@NamedQuery(name = "Anoagricola.findByFlagSincronizacao", query = "SELECT a FROM Anoagricola a WHERE a.flagSincronizacao = :flagSincronizacao")})

public class Anoagricola implements Serializable {

private static final long serialVersionUID = 1L; @Id

@GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false)

@Column(name = "id_anoagricola") private Integer idAnoagricola;

@Size(max = 25)

@Column(name = "descricao") private String descricao; @Size(max = 4)

@Column(name = "anoinicial") private String anoinicial; @Size(max = 1)

@Column(name = "condicao") private String condicao; @Size(max = 1)

@Column(name = "flag_sincronizacao") private String flagSincronizacao;

@OneToMany(cascade = CascadeType.ALL, mappedBy = "idAnoagricola") private Collection<Safra> safraCollection;

public Anoagricola() { }

public Anoagricola(Integer idAnoagricola) { this.idAnoagricola = idAnoagricola; }

public Integer getIdAnoagricola() { return idAnoagricola;

}

public void setIdAnoagricola(Integer idAnoagricola) { this.idAnoagricola = idAnoagricola;

}

public String getDescricao() { return descricao;

}

public void setDescricao(String descricao) { this.descricao = descricao;

}

public String getAnoinicial() { return anoinicial;

}

public void setAnoinicial(String anoinicial) { this.anoinicial = anoinicial;

}

public String getCondicao() { return condicao;

}

public void setCondicao(String condicao) { this.condicao = condicao;

}

public String getFlagSincronizacao() { return flagSincronizacao;

}

public void setFlagSincronizacao(String flagSincronizacao) { this.flagSincronizacao = flagSincronizacao;

}

@XmlTransient

public Collection<Safra> getSafraCollection() { return safraCollection;

}

public void setSafraCollection(Collection<Safra> safraCollection) { this.safraCollection = safraCollection;

}

@Override

public int hashCode() { int hash = 0;

hash += (idAnoagricola != null ? idAnoagricola.hashCode() : 0); return hash;

}

@Override

if (!(object instanceof Anoagricola)) { return false;

}

Anoagricola other = (Anoagricola) object;

if ((this.idAnoagricola == null && other.idAnoagricola != null) || (this.idAnoagricola != null && !this.idAnoagricola.equals(other.idAnoagricola))) { return false; } return true; } @Override

public String toString() {

return "entidades.Anoagricola[ idAnoagricola=" + idAnoagricola + " ]"; } }

Classe Cidade.java

package entidades; import java.io.Serializable; import java.util.Collection; import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient;

@Entity

@Table(name = "cidade") @XmlRootElement

@NamedQueries({

@NamedQuery(name = "Cidade.findAll", query = "SELECT c FROM Cidade c"),

@NamedQuery(name = "Cidade.findByIdCidade", query = "SELECT c FROM Cidade c WHERE c.idCidade = :idCidade"), @NamedQuery(name = "Cidade.findByCidade", query = "SELECT c FROM Cidade c WHERE c.cidade = :cidade"),

@NamedQuery(name = "Cidade.findByFlagSincronizacao", query = "SELECT c FROM Cidade c WHERE c.flagSincronizacao = :flagSincronizacao"), @NamedQuery(name = "Cidade.findByUf", query = "SELECT c FROM Cidade c WHERE c.uf = :uf")})

public class Cidade implements Serializable { private static final long serialVersionUID = 1L; @Id

@GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false)

@Column(name = "id_cidade") private Integer idCidade; @Basic(optional = false) @NotNull

@Size(min = 1, max = 40) @Column(name = "cidade") private String cidade; @Size(max = 1)

@Column(name = "flag_sincronizacao") private String flagSincronizacao;

@Size(max = 2) @Column(name = "uf") private String uf;

@OneToMany(mappedBy = "idCidade")

private Collection<Produtor> produtorCollection;

@OneToMany(cascade = CascadeType.ALL, mappedBy = "idCidade") private Collection<Gleba> glebaCollection;

public Cidade() { }

public Cidade(Integer idCidade) { this.idCidade = idCidade; }

public Cidade(Integer idCidade, String cidade) { this.idCidade = idCidade;

this.cidade = cidade; }

public Integer getIdCidade() { return idCidade;

}

public void setIdCidade(Integer idCidade) { this.idCidade = idCidade;

}

public String getCidade() { return cidade;

}

public void setCidade(String cidade) { this.cidade = cidade;

}

public String getFlagSincronizacao() { return flagSincronizacao;

}

public void setFlagSincronizacao(String flagSincronizacao) { this.flagSincronizacao = flagSincronizacao;

}

public String getUf() { return uf;

}

public void setUf(String uf) { this.uf = uf;

}

@XmlTransient

public Collection<Produtor> getProdutorCollection() { return produtorCollection;

public void setProdutorCollection(Collection<Produtor> produtorCollection) { this.produtorCollection = produtorCollection;

}

@XmlTransient

public Collection<Gleba> getGlebaCollection() { return glebaCollection;

}

public void setGlebaCollection(Collection<Gleba> glebaCollection) { this.glebaCollection = glebaCollection;

}

@Override

public int hashCode() { int hash = 0;

hash += (idCidade != null ? idCidade.hashCode() : 0); return hash;

}

@Override

public boolean equals(Object object) { if (!(object instanceof Cidade)) {

return false; }

Cidade other = (Cidade) object;

if ((this.idCidade == null && other.idCidade != null) || (this.idCidade != null && !this.idCidade.equals(other.idCidade))) { return false; } return true; } @Override

public String toString() {

return "entidades.Cidade[ idCidade=" + idCidade + " ]"; }

}

Classe Cultivares.java

package entidades; import java.io.Serializable; import java.util.Collection; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; @Entity @Table(name = "cultivares") @XmlRootElement @NamedQueries({

@NamedQuery(name = "Cultivares.findAll", query = "SELECT c FROM Cultivares c"),

@NamedQuery(name = "Cultivares.findByIdCultivares", query = "SELECT c FROM Cultivares c WHERE c.idCultivares = :idCultivares"), @NamedQuery(name = "Cultivares.findByDatac", query = "SELECT c FROM Cultivares c WHERE c.datac = :datac"),

@NamedQuery(name = "Cultivares.findByObservacao", query = "SELECT c FROM Cultivares c WHERE c.observacao = :observacao"), @NamedQuery(name = "Cultivares.findByPestimada", query = "SELECT c FROM Cultivares c WHERE c.pestimada = :pestimada"), @NamedQuery(name = "Cultivares.findByEestimada", query = "SELECT c FROM Cultivares c WHERE c.eestimada = :eestimada"), @NamedQuery(name = "Cultivares.findBySituacao", query = "SELECT c FROM Cultivares c WHERE c.situacao = :situacao"),

@NamedQuery(name = "Cultivares.findByFlagSincronizacao", query = "SELECT c FROM Cultivares c WHERE c.flagSincronizacao = :flagSincronizacao")})

public class Cultivares implements Serializable { private static final long serialVersionUID = 1L; @Id

@GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false)

@Column(name = "id_cultivares") private Integer idCultivares; @Size(max = 10)

private String datac; @Size(max = 100)

@Column(name = "observacao") private String observacao; @Column(name = "pestimada") private Integer pestimada; @Column(name = "eestimada") private Integer eestimada; @Size(max = 1)

@Column(name = "situacao") private String situacao; @Size(max = 1)

@Column(name = "flag_sincronizacao") private String flagSincronizacao;

@JoinColumn(name = "id_variedadesgleba", referencedColumnName = "id_variedadesgleba") @ManyToOne(optional = false)

private Variedadesgleba idVariedadesgleba;

@JoinColumn(name = "id_glebavinculada", referencedColumnName = "id_glebavinculada") @ManyToOne(optional = false)

private Glebasvinculadas idGlebavinculada;

@JoinColumn(name = "id_estadio", referencedColumnName = "id_estadio") @ManyToOne

private Estadio idEstadio;

@OneToMany(mappedBy = "idCultivares")

private Collection<Pontoamostra> pontoamostraCollection;

public Cultivares() { }

public Cultivares(Integer idCultivares) { this.idCultivares = idCultivares; }

public Integer getIdCultivares() { return idCultivares;

}

public void setIdCultivares(Integer idCultivares) { this.idCultivares = idCultivares;

public String getDatac() { return datac;

}

public void setDatac(String datac) { this.datac = datac;

}

public String getObservacao() { return observacao;

}

public void setObservacao(String observacao) { this.observacao = observacao;

}

public Integer getPestimada() { return pestimada;

}

public void setPestimada(Integer pestimada) { this.pestimada = pestimada;

}

public Integer getEestimada() { return eestimada;

}

public void setEestimada(Integer eestimada) { this.eestimada = eestimada;

}

public String getSituacao() { return situacao;

}

public void setSituacao(String situacao) { this.situacao = situacao;

public String getFlagSincronizacao() { return flagSincronizacao;

}

public void setFlagSincronizacao(String flagSincronizacao) { this.flagSincronizacao = flagSincronizacao;

}

public Variedadesgleba getIdVariedadesgleba() { return idVariedadesgleba;

}

public void setIdVariedadesgleba(Variedadesgleba idVariedadesgleba) { this.idVariedadesgleba = idVariedadesgleba;

}

public Glebasvinculadas getIdGlebavinculada() { return idGlebavinculada;

}

public void setIdGlebavinculada(Glebasvinculadas idGlebavinculada) { this.idGlebavinculada = idGlebavinculada;

}

public Estadio getIdEstadio() { return idEstadio;

}

public void setIdEstadio(Estadio idEstadio) { this.idEstadio = idEstadio;

}

@XmlTransient

public Collection<Pontoamostra> getPontoamostraCollection() { return pontoamostraCollection;

}

public void setPontoamostraCollection(Collection<Pontoamostra> pontoamostraCollection) { this.pontoamostraCollection = pontoamostraCollection;

}

@Override

public int hashCode() { int hash = 0;

hash += (idCultivares != null ? idCultivares.hashCode() : 0); return hash;

}

@Override

public boolean equals(Object object) { if (!(object instanceof Cultivares)) { return false;

}

Cultivares other = (Cultivares) object;

if ((this.idCultivares == null && other.idCultivares != null) || (this.idCultivares != null && !this.idCultivares.equals(other.idCultivares))) { return false; } return true; } @Override

public String toString() {

return "entidades.Cultivares[ idCultivares=" + idCultivares + " ]"; } }

Classe Cultura.java

package entidades; import java.io.Serializable; import java.util.Collection; import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; @Entity @Table(name = "cultura") @XmlRootElement @NamedQueries({

@NamedQuery(name = "Cultura.findAll", query = "SELECT c FROM Cultura c"),

@NamedQuery(name = "Cultura.findByIdCultura", query = "SELECT c FROM Cultura c WHERE c.idCultura = :idCultura"), @NamedQuery(name = "Cultura.findByNome", query = "SELECT c FROM Cultura c WHERE c.nome = :nome"), @NamedQuery(name = "Cultura.findByPoprec", query = "SELECT c FROM Cultura c WHERE c.poprec = :poprec"), @NamedQuery(name = "Cultura.findByEpocaplant", query = "SELECT c FROM Cultura c WHERE c.epocaplant = :epocaplant"), @NamedQuery(name = "Cultura.findByOrdimp", query = "SELECT c FROM Cultura c WHERE c.ordimp = :ordimp"),

@NamedQuery(name = "Cultura.findByFlagSincronizacao", query = "SELECT c FROM Cultura c WHERE c.flagSincronizacao = :flagSincronizacao")})

public class Cultura implements Serializable { private static final long serialVersionUID = 1L; @Id

@GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false)

@Column(name = "id_cultura") private Integer idCultura; @Size(max = 40)

@Column(name = "nome") private String nome;

@Column(name = "poprec") private Integer poprec; @Size(max = 1)

@Column(name = "epocaplant") private String epocaplant; @Column(name = "ordimp") private Integer ordimp; @Size(max = 1)

@Column(name = "flag_sincronizacao") private String flagSincronizacao;

@OneToMany(mappedBy = "idCultura")

@OneToMany(cascade = CascadeType.ALL, mappedBy = "idCultura") private Collection<Safra> safraCollection;

public Cultura() { }

public Cultura(Integer idCultura) { this.idCultura = idCultura; }

public Integer getIdCultura() { return idCultura;

}

public void setIdCultura(Integer idCultura) { this.idCultura = idCultura;

}

public String getNome() { return nome;

}

public void setNome(String nome) { this.nome = nome;

}

public Integer getPoprec() { return poprec;

}

public void setPoprec(Integer poprec) { this.poprec = poprec;

}

public String getEpocaplant() { return epocaplant;

}

public void setEpocaplant(String epocaplant) { this.epocaplant = epocaplant;

}

public Integer getOrdimp() { return ordimp;

}

public void setOrdimp(Integer ordimp) { this.ordimp = ordimp;

}

public String getFlagSincronizacao() { return flagSincronizacao;

}

public void setFlagSincronizacao(String flagSincronizacao) { this.flagSincronizacao = flagSincronizacao;

}

@XmlTransient

public Collection<Variedades> getVariedadesCollection() { return variedadesCollection;

}

public void setVariedadesCollection(Collection<Variedades> variedadesCollection) { this.variedadesCollection = variedadesCollection;

}

@XmlTransient

public Collection<Safra> getSafraCollection() { return safraCollection;

}

public void setSafraCollection(Collection<Safra> safraCollection) { this.safraCollection = safraCollection;

}

@Override

public int hashCode() { int hash = 0;

return hash; }

@Override

public boolean equals(Object object) { if (!(object instanceof Cultura)) { return false;

}

Cultura other = (Cultura) object;

if ((this.idCultura == null && other.idCultura != null) || (this.idCultura != null && !this.idCultura.equals(other.idCultura))) { return false; } return true; } @Override

public String toString() {

return "entidades.Cultura[ idCultura=" + idCultura + " ]"; } }

Classe Especiem.java

package entidades; import java.io.Serializable; import java.util.Collection; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.validation.constraints.Size;

import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; @Entity @Table(name = "especiem") @XmlRootElement @NamedQueries({

@NamedQuery(name = "Especiem.findAll", query = "SELECT e FROM Especiem e"),

@NamedQuery(name = "Especiem.findByIdEspeciem", query = "SELECT e FROM Especiem e WHERE e.idEspeciem = :idEspeciem"), @NamedQuery(name = "Especiem.findByDescricao", query = "SELECT e FROM Especiem e WHERE e.descricao = :descricao"), @NamedQuery(name = "Especiem.findByTipo", query = "SELECT e FROM Especiem e WHERE e.tipo = :tipo"),

@NamedQuery(name = "Especiem.findByFlagSincronizacao", query = "SELECT e FROM Especiem e WHERE e.flagSincronizacao = :flagSincronizacao")})

public class Especiem implements Serializable { private static final long serialVersionUID = 1L; @Id

@GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false)

@Column(name = "id_especiem") private Integer idEspeciem; @Size(max = 40)

@Column(name = "descricao") private String descricao; @Size(max = 1)

@Column(name = "tipo") private String tipo; @Size(max = 1)

@Column(name = "flag_sincronizacao") private String flagSincronizacao;

@OneToMany(mappedBy = "idEspeciem")

private Collection<Monitoramento> monitoramentoCollection;

public Especiem() { }

public Especiem(Integer idEspeciem) { this.idEspeciem = idEspeciem; }

public Integer getIdEspeciem() { return idEspeciem;

public void setIdEspeciem(Integer idEspeciem) { this.idEspeciem = idEspeciem;

}

public String getDescricao() { return descricao;

}

public void setDescricao(String descricao) { this.descricao = descricao;

}

public String getTipo() { return tipo;

}

public void setTipo(String tipo) { this.tipo = tipo;

}

public String getFlagSincronizacao() { return flagSincronizacao;

}

public void setFlagSincronizacao(String flagSincronizacao) { this.flagSincronizacao = flagSincronizacao;

}

@XmlTransient

public Collection<Monitoramento> getMonitoramentoCollection() { return monitoramentoCollection;

}

public void setMonitoramentoCollection(Collection<Monitoramento> monitoramentoCollection) {

this.monitoramentoCollection = monitoramentoCollection; }

@Override

int hash = 0;

hash += (idEspeciem != null ? idEspeciem.hashCode() : 0); return hash;

}

@Override

public boolean equals(Object object) { if (!(object instanceof Especiem)) { return false;

}

Especiem other = (Especiem) object;

if ((this.idEspeciem == null && other.idEspeciem != null) || (this.idEspeciem != null && !this.idEspeciem.equals(other.idEspeciem))) { return false; } return true; } @Override

public String toString() {

return "entidades.Especiem[ idEspeciem=" + idEspeciem + " ]"; } }

Classe Estadio.java

package entidades; import java.io.Serializable; import java.util.Collection; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany;

import javax.persistence.Table; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; @Entity @Table(name = "estadio") @XmlRootElement @NamedQueries({

@NamedQuery(name = "Estadio.findAll", query = "SELECT e FROM Estadio e"),

@NamedQuery(name = "Estadio.findByIdEstadio", query = "SELECT e FROM Estadio e WHERE e.idEstadio = :idEstadio"),

@NamedQuery(name = "Estadio.findByNomeEsstadio", query = "SELECT e FROM Estadio e WHERE e.nomeEsstadio = :nomeEsstadio"), @NamedQuery(name = "Estadio.findByDescricao", query = "SELECT e FROM Estadio e WHERE e.descricao = :descricao"),

@NamedQuery(name = "Estadio.findByFlagSincronizacao", query = "SELECT e FROM Estadio e WHERE e.flagSincronizacao = :flagSincronizacao")})

public class Estadio implements Serializable { private static final long serialVersionUID = 1L; @Id

@GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false)

@Column(name = "id_estadio") private Integer idEstadio; @Size(max = 40)

@Column(name = "nome_esstadio") private String nomeEsstadio;

@Size(max = 100)

@Column(name = "descricao") private String descricao; @Size(max = 1)

@Column(name = "flag_sincronizacao") private String flagSincronizacao;

@OneToMany(mappedBy = "idEstadio")

private Collection<Monitoramento> monitoramentoCollection; @OneToMany(mappedBy = "idEstadio")

private Collection<Cultivares> cultivaresCollection; @OneToMany(mappedBy = "idEstadio")

private Collection<Eventosc> eventoscCollection;

public Estadio() { }

public Estadio(Integer idEstadio) { this.idEstadio = idEstadio;

}

public Integer getIdEstadio() { return idEstadio;

}

public void setIdEstadio(Integer idEstadio) { this.idEstadio = idEstadio;

}

public String getNomeEsstadio() { return nomeEsstadio;

}

public void setNomeEsstadio(String nomeEsstadio) { this.nomeEsstadio = nomeEsstadio;

}

public String getDescricao() { return descricao;

}

public void setDescricao(String descricao) { this.descricao = descricao;

}

public String getFlagSincronizacao() { return flagSincronizacao;

}

public void setFlagSincronizacao(String flagSincronizacao) { this.flagSincronizacao = flagSincronizacao;

}

@XmlTransient

public Collection<Monitoramento> getMonitoramentoCollection() { return monitoramentoCollection;

public void setMonitoramentoCollection(Collection<Monitoramento> monitoramentoCollection) {

this.monitoramentoCollection = monitoramentoCollection; }

@XmlTransient

public Collection<Cultivares> getCultivaresCollection() { return cultivaresCollection;

}

public void setCultivaresCollection(Collection<Cultivares> cultivaresCollection) { this.cultivaresCollection = cultivaresCollection;

}

@XmlTransient

public Collection<Eventosc> getEventoscCollection() { return eventoscCollection;

}

public void setEventoscCollection(Collection<Eventosc> eventoscCollection) { this.eventoscCollection = eventoscCollection;

}

@Override

public int hashCode() { int hash = 0;

hash += (idEstadio != null ? idEstadio.hashCode() : 0); return hash;

}

@Override

public boolean equals(Object object) { if (!(object instanceof Estadio)) { return false;

}

Estadio other = (Estadio) object;

if ((this.idEstadio == null && other.idEstadio != null) || (this.idEstadio != null && !this.idEstadio.equals(other.idEstadio))) {

return false; }

return true; }

@Override

public String toString() {

return "entidades.Estadio[ idEstadio=" + idEstadio + " ]";

Dans le document EMC PowerPath pour Windows version 5.0 (Page 36-40)

Documents relatifs