From 1aab82200dc4562a523991730eaea2a5006e9c66 Mon Sep 17 00:00:00 2001 From: Marcos Lopez Gonzalez Date: Mon, 10 Jun 2024 17:37:29 +0200 Subject: [PATCH] fixed import of tags --- vocabulary-importer/README.md | 4 +--- .../main/java/org/gbif/vocabulary/importer/Fields.java | 2 +- .../gbif/vocabulary/importer/VocabularyImporter.java | 10 ++++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/vocabulary-importer/README.md b/vocabulary-importer/README.md index 7c94ff39..bcc7c026 100644 --- a/vocabulary-importer/README.md +++ b/vocabulary-importer/README.md @@ -94,12 +94,10 @@ This tool can be run via command line by sending these params: * *--csvDelimiter, -d (Optional)* Delimiter of the CSV files for concepts and hidden labels. If not specified it uses a comma (","). - Note that some delimiters may need to be escaped for Java, e.g.: \\\\| * *--listDelimiter, -ld (Optional)* - Delimiter to specify multiple values in the alternative labels. If not specified it uses a pipe ("|"). - Note that some delimiters may need to be escaped for Java, e.g.: \\\\| + Delimiter to specify multiple values in the alternative labels. If not specified it uses a pipe ("|") * *--apiUrl, -a* diff --git a/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/Fields.java b/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/Fields.java index ff068b28..e79c8811 100644 --- a/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/Fields.java +++ b/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/Fields.java @@ -28,5 +28,5 @@ public class Fields { static final String TAGS = "TAGS"; static final List CONCEPT_FIELDS = - Arrays.asList(CONCEPT, PARENT, SAME_AS_URIS, EXTERNAL_DEFINITIONS); + Arrays.asList(CONCEPT, PARENT, SAME_AS_URIS, EXTERNAL_DEFINITIONS, TAGS); } diff --git a/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/VocabularyImporter.java b/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/VocabularyImporter.java index f3da85a0..86ebf9fe 100644 --- a/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/VocabularyImporter.java +++ b/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/VocabularyImporter.java @@ -46,6 +46,7 @@ import java.util.Optional; import java.util.Set; import java.util.function.Function; +import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -566,7 +567,8 @@ private ConceptData parseConceptFields( if (headersIndexes.containsKey(SAME_AS_URIS) && !Strings.isNullOrEmpty(values[headersIndexes.get(SAME_AS_URIS)])) { Set sameAsUris = new HashSet<>(); - String[] urisValues = values[headersIndexes.get(SAME_AS_URIS)].split(listDelimiter); + String[] urisValues = + values[headersIndexes.get(SAME_AS_URIS)].split(Pattern.quote(listDelimiter)); for (String uri : urisValues) { try { sameAsUris.add(URI.create(uri.trim())); @@ -582,7 +584,7 @@ private ConceptData parseConceptFields( if (headersIndexes.containsKey(EXTERNAL_DEFINITIONS) && !Strings.isNullOrEmpty(values[headersIndexes.get(SAME_AS_URIS)])) { Set externalDefinitions = new HashSet<>(); - String[] externalDefsValues = values[headersIndexes.get(SAME_AS_URIS)].split(listDelimiter); + String[] externalDefsValues = values[headersIndexes.get(SAME_AS_URIS)].split(Pattern.quote(listDelimiter)); for (String definition : externalDefsValues) { try { externalDefinitions.add(URI.create(definition.trim())); @@ -597,7 +599,7 @@ private ConceptData parseConceptFields( // tags if (headersIndexes.containsKey(TAGS) && !Strings.isNullOrEmpty(values[headersIndexes.get(TAGS)])) { - String[] tagsValues = values[headersIndexes.get(TAGS)].split(listDelimiter); + String[] tagsValues = values[headersIndexes.get(TAGS)].split(Pattern.quote(listDelimiter)); conceptData.tags = Arrays.stream(tagsValues) .filter(s -> !Strings.isNullOrEmpty(s)) @@ -628,7 +630,7 @@ private static List