Skip to content

Commit f59f08e

Browse files
authored
Merge pull request #1253 from WildMeOrg/consistent-subspecies-storage
Store and search subspecies more consistently
2 parents 0526053 + 16125eb commit f59f08e

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

src/main/java/org/ecocean/Encounter.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2150,7 +2150,7 @@ public void setGenusOnly(String genus) {
21502150
}
21512151

21522152
public void setSpeciesOnly(String species) {
2153-
this.specificEpithet = species;
2153+
setSpecificEpithet(species);
21542154
this.refreshAnnotationLiteTaxonomy();
21552155
}
21562156

@@ -2159,7 +2159,7 @@ public String getSpecificEpithet() {
21592159
}
21602160

21612161
public void setSpecificEpithet(String newEpithet) {
2162-
if (newEpithet != null) { specificEpithet = newEpithet; } else { specificEpithet = null; }
2162+
if (newEpithet != null) { specificEpithet = newEpithet.replaceAll("_"," "); } else { specificEpithet = null; }
21632163
this.refreshAnnotationLiteTaxonomy();
21642164
}
21652165

@@ -2187,7 +2187,7 @@ public void setTaxonomy(Taxonomy tax) {
21872187
this.specificEpithet = null;
21882188
} else {
21892189
this.genus = gs[0];
2190-
this.specificEpithet = gs[1];
2190+
this.specificEpithet = gs[1].replaceAll("_"," ");
21912191
}
21922192
this.refreshAnnotationLiteTaxonomy();
21932193
}
@@ -2201,7 +2201,7 @@ public void setTaxonomyFromString(String s) { // basically scientific name (will
22012201
this.specificEpithet = null;
22022202
} else {
22032203
this.genus = gs[0];
2204-
this.specificEpithet = gs[1];
2204+
this.specificEpithet = gs[1].replaceAll("_"," ");
22052205
}
22062206
this.refreshAnnotationLiteTaxonomy();
22072207
}

src/main/java/org/ecocean/EncounterQueryProcessor.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1340,9 +1340,12 @@ public static String queryStringBuilder(HttpServletRequest request, StringBuffer
13401340

13411341
// now we have to break apart genus species
13421342
StringTokenizer tokenizer = new StringTokenizer(genusSpecies, " ");
1343-
if (tokenizer.countTokens() == 2) {
1343+
if (tokenizer.countTokens() >1) {
13441344
genus = tokenizer.nextToken();
1345-
specificEpithet = tokenizer.nextToken();
1345+
while(tokenizer.hasMoreTokens()) {
1346+
specificEpithet+=tokenizer.nextToken()+" ";
1347+
}
1348+
specificEpithet=specificEpithet.trim();
13461349
if (filter.equals(SELECT_FROM_ORG_ECOCEAN_ENCOUNTER_WHERE)) {
13471350
filter += "genus == '" + genus + "' ";
13481351
} else { filter += " && genus == '" + genus + "' "; }

src/main/java/org/ecocean/IndividualQueryProcessor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -974,7 +974,10 @@ public static String queryStringBuilder(HttpServletRequest request, StringBuffer
974974
StringTokenizer tokenizer = new StringTokenizer(genusSpecies, " ");
975975
if (tokenizer.countTokens() == 2) {
976976
genus = tokenizer.nextToken();
977-
specificEpithet = tokenizer.nextToken();
977+
while(tokenizer.hasMoreTokens()) {
978+
specificEpithet+=tokenizer.nextToken()+" ";
979+
}
980+
specificEpithet=specificEpithet.trim();
978981

979982
filter = filterWithCondition(filter, " enc.genus == '" + genus + "' ");
980983
filter = filterWithCondition(filter,

0 commit comments

Comments
 (0)