Rev 1393 | Rev 1934 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.modeles;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Observation implements Serializable {
private static final long serialVersionUID = 840032625524143547L;
private String id, auteur, idAuteur, nomAuteur, prenomAuteur, courrielAuteur, nomRetenu, famille, localite, idLocalite,
dateTransmission, numNomenclatural, nomCommun, lieuDit,
milieu, commentaire, dateReleve, station, referentiel;
private List<String> motsClefs = new ArrayList<String>();
// les propositions sont une liste ordonnée qui contient soit des
// proposition de determinations, soit des commentaires
private List<InterventionForum> propositions = new ArrayList<InterventionForum>();
private List<Image> images = new ArrayList<Image>();
public String getAuteur() {
return auteur;
}
public void setAuteur(String auteur) {
this.auteur = auteur;
}
public String getNomRetenu() {
return nomRetenu;
}
public void setNomRetenu(String commonName) {
this.nomRetenu = commonName;
}
public String getNomCommun() {
return nomCommun;
}
public void setNomCommun(String nomCommun) {
this.nomCommun = nomCommun;
}
public String getStation() {
return this.station;
}
public void setStation(String station) {
this.station = station;
}
public String getLieuDit() {
return this.lieuDit;
}
public void setLieuDit(String lieuDit) {
this.lieuDit = lieuDit;
}
public String getMilieu() {
return milieu;
}
public void setMilieu(String milieu) {
this.milieu = milieu;
}
public String getCommentaire() {
return commentaire;
}
public void setCommentaire(String commentaire) {
this.commentaire = commentaire;
}
public String getFamille() {
return famille;
}
public void setFamille(String famille) {
this.famille = famille;
}
public String getIdLocalite() {
return idLocalite;
}
public void setIdLocalite(String idlocalite) {
this.idLocalite = idlocalite;
}
public String getLocalite() {
return localite;
}
public String getLocaliteAvecIdFormatee() {
String localiteFormatee = this.localite;
if (idLocalite != null && idLocalite.length() >= 5 && idLocalite.substring(0, 5).equals("INSEE")) {
String[] tableaulocalite = idLocalite.split(":");
String idLocaliteFormatee = (tableaulocalite.length == 2) ? tableaulocalite[1] : localiteFormatee;
localiteFormatee += " (" + idLocaliteFormatee + ")";
} else if (idLocalite != null && idLocalite.length() >= 2) {
localiteFormatee += " (" + idLocalite.substring(0, 2) + ")";
}
return localiteFormatee;
}
public void setLocalite(String localite) {
this.localite = localite;
}
public String getDateTransmission() {
return dateTransmission;
}
public void setDateTransmission(String date) {
this.dateTransmission = date;
}
public String getDateReleve() {
return dateReleve;
}
public void setDateReleve(String dateReleve) {
this.dateReleve = dateReleve;
}
public String getNumNomenclatural() {
return numNomenclatural;
}
public void setNumNomenclatural(String numNomenclatural) {
this.numNomenclatural = numNomenclatural;
}
public List<InterventionForum> getInterventionsForum() {
return propositions;
}
public void setInterventionsForum(List<InterventionForum> propositions) {
this.propositions = propositions;
}
public List<String> getMotsClefs() {
return motsClefs;
}
public void setMotsClefs(List<String> motsClefs) {
this.motsClefs = motsClefs;
}
public void ajouterMotsClef(String motsClefs) {
if (this.motsClefs == null) {
this.motsClefs = new ArrayList<String>();
}
this.motsClefs.add(motsClefs);
}
public void ajouterPropositionDetermination(PropositionDetermination observationValidation) {
propositions.add(observationValidation);
}
public ArrayList<String> getPropositionsTaxonsData() {
ArrayList<String> propositionsTaxonDatas = new ArrayList<String>();
for (InterventionForum proposition : propositions) {
if (proposition instanceof PropositionDetermination) {
String espece = ((PropositionDetermination) proposition).getEspece();
if (espece != "" && !propositionsTaxonDatas.contains(espece)) {
propositionsTaxonDatas.add(espece);
}
}
}
return propositionsTaxonDatas;
}
public List<PropositionDetermination> getPropositionDeterminations() {
List<PropositionDetermination> determinations = new ArrayList<PropositionDetermination>();
for (InterventionForum proposition : getInterventionsForum()) {
if (proposition instanceof PropositionDetermination) {
determinations.add((PropositionDetermination) proposition);
}
}
return determinations;
}
public List<Commentaire> getCommentairesForum() {
List<Commentaire> commentaires = new ArrayList<Commentaire>();
for (InterventionForum proposition : getInterventionsForum()) {
if (proposition instanceof Commentaire) {
commentaires.add((Commentaire) proposition);
}
}
return commentaires;
}
public void supprimerIntervention(InterventionForum intervention) {
if(propositions.contains(intervention)) {
propositions.remove(intervention);
} else {
for (Iterator<InterventionForum> iterator = propositions.iterator(); iterator.hasNext();) {
iterator.next().supprimerIntervention(intervention);
}
}
}
public List<Image> getImages() {
return images;
}
public void setImages(List<Image> images) {
this.images = images;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public void setIdAuteur(String idAuteur) {
this.idAuteur = idAuteur;
}
public String getIdAuteur() {
return idAuteur;
}
public String getNomAuteur() {
return nomAuteur;
}
public void setNomAuteur(String nomAuteur) {
this.nomAuteur = nomAuteur;
}
public String getPrenomAuteur() {
return prenomAuteur;
}
public void setPrenomAuteur(String prenomAuteur) {
this.prenomAuteur = prenomAuteur;
}
public String getCourrielAuteur() {
return courrielAuteur;
}
public void setCourrielAuteur(String courrielAuteur) {
this.courrielAuteur = courrielAuteur;
}
public boolean estADeterminer() {
return nomRetenu == null || nomRetenu.isEmpty() || motsClefs.contains("aDeterminer");
}
public String getReferentiel() {
String refFmt = "";
// on ne renvoie que le code du référentiel, sans version, et seulement également si l'on possède
// un numéro nomenclatural associé (ce qui nous assure une certaine cohérence)
if(referentiel.length() >= 3 && numNomenclatural != null && !numNomenclatural.equals("0")) {
int positionDeuxPoints = referentiel.indexOf(':');
if (positionDeuxPoints == -1) {
refFmt = referentiel;
} else {
refFmt = referentiel.substring(0, positionDeuxPoints);
}
}
return refFmt;
}
public void setReferentiel(String referentiel) {
this.referentiel = referentiel;
}
public String getNomRetenuFormateReferentiel() {
String nomRetenuFmt = "";
if(nomRetenu != null && !nomRetenu.equals("")) {
nomRetenuFmt += nomRetenu;
}
String referentiel = getReferentiel();
if(!nomRetenuFmt.equals("") && !referentiel.equals("")) {
nomRetenuFmt += " ("+referentiel+")";
}
return nomRetenuFmt;
}
}