2 * Copyright (C) 2017 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.cdm
.io
.plantglossary
;
12 import java
.net
.URISyntaxException
;
13 import java
.util
.ArrayList
;
14 import java
.util
.HashSet
;
15 import java
.util
.List
;
18 import eu
.etaxonomy
.cdm
.api
.service
.ITermService
;
19 import eu
.etaxonomy
.cdm
.api
.service
.IVocabularyService
;
20 import eu
.etaxonomy
.cdm
.io
.csv
.in
.CsvImportState
;
21 import eu
.etaxonomy
.cdm
.model
.agent
.Institution
;
22 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
23 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
24 import eu
.etaxonomy
.cdm
.model
.common
.TermVocabulary
;
25 import eu
.etaxonomy
.cdm
.model
.common
.VerbatimTimePeriod
;
26 import eu
.etaxonomy
.cdm
.model
.description
.State
;
27 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
28 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceFactory
;
36 public class PlantGlossaryCsvImportState
extends CsvImportState
<PlantGlossaryCsvImportConfigurator
> {
38 private List
<TermVocabulary
> existingVocabularies
= new ArrayList
<>();
39 private List
<State
> existingTerms
= new ArrayList
<>();
40 private Set
<TermVocabulary
> vocabularies
= new HashSet
<>();
41 private final Reference citation
;
44 protected PlantGlossaryCsvImportState(PlantGlossaryCsvImportConfigurator config
) {
46 citation
= ReferenceFactory
.newGeneric();
47 citation
.setTitle("FloraTerms");
48 Team team
= Team
.NewInstance();
49 team
.addTeamMember(Person
.NewInstance(null, "Cui", null, "Hong"));
50 team
.addTeamMember(Person
.NewInstance(null, "Cole", null, "Heather"));
51 team
.addTeamMember(Person
.NewInstance(null, "Endara", null, "Lorena"));
52 team
.addTeamMember(Person
.NewInstance(null, "Macklin", null, "James"));
53 team
.addTeamMember(Person
.NewInstance(null, "Sachs", null, "Joel"));
54 citation
.setAuthorship(team
);
55 VerbatimTimePeriod datePublished
= VerbatimTimePeriod
.NewVerbatimInstance();
56 datePublished
.setStartYear(2014);
57 datePublished
.setStartMonth(6);
58 datePublished
.setStartDay(13);
59 citation
.setDatePublished(datePublished
);
60 Institution institution
= Institution
.NewNamedInstance("OTO System");
61 institution
.addUrl(URI
.create("http://biosemantics.arizona.edu/OTO/"));
62 citation
.setInstitution(institution
);
65 uri
= new URI("https://terms.tdwg.org/wiki/FloraTerms");
67 } catch (URISyntaxException e
) {
72 public void resetSession(){
76 void addVocabulary(TermVocabulary vocabulary
) {
77 vocabularies
.add(vocabulary
);
80 TermVocabulary
checkVocabularies(String vocName
, IVocabularyService vocabularyService
){
81 if(existingVocabularies
.isEmpty()){
82 existingVocabularies
= vocabularyService
.list(TermVocabulary
.class, null, null, null, null);
84 for (TermVocabulary termVocabulary
: vocabularies
) {
85 if(termVocabulary
.getLabel().equals(vocName
)){
86 return termVocabulary
;
92 public boolean isTermPresent(String termName
, ITermService termService
) {
93 if(existingTerms
.isEmpty()){
94 existingTerms
= termService
.list(State
.class, null, null, null, null);
96 return existingTerms
.stream().map(term
->term
.getLabel()).anyMatch(label
->label
.equals(termName
));
99 Reference
getCitation() {