Skip to content

Commit 9d30cef

Browse files
authored
1.4.1: allow populating OtherReference field in Dataset (#34)
1 parent fed52b2 commit 9d30cef

5 files changed

Lines changed: 46 additions & 11 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
Significant changes since 0.1.0
22

3+
1.4.1 2026-02-19
4+
5+
- feature: Add `OtherReferences` field when building Dataset
6+
37
1.4.0 2026-02-19
48

59
- feature: upgraded Jackson dependencies and registered JdkModule with ObjectMapper so that Optional fields can be serialised

build.gradle

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1+
plugins {
2+
id 'maven-publish'
3+
}
4+
15
apply plugin: 'java'
26

3-
group = 'com.researchspace'
7+
group = 'com.github.IQSS'
48
sourceCompatibility = 1.8
5-
version = '1.4.0'
9+
version = '1.4.1'
610
def springVersion='5.3.24'
711
def jacksonVersion='2.20.0'
812
def jacksonAnnotationsVersion='2.20'
@@ -88,4 +92,15 @@ task listJars {
8892
doLast {
8993
configurations.compile.each { File file -> println file.name }
9094
}
95+
96+
publishing {
97+
publications {
98+
maven(MavenPublication) {
99+
groupId = 'com.github.IQSS'
100+
artifactId = 'dataverse-client-java'
101+
102+
from components.java
103+
}
104+
}
105+
}
91106
}

src/main/java/com/researchspace/dataverse/entities/facade/DatasetBuilder.java

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,18 @@
66
import static java.util.Arrays.asList;
77
import static org.apache.commons.lang.StringUtils.isEmpty;
88

9-
import java.util.ArrayList;
10-
import java.util.Arrays;
11-
import java.util.Date;
12-
import java.util.HashMap;
13-
import java.util.List;
14-
import java.util.Map;
15-
169
import com.researchspace.dataverse.entities.Citation;
1710
import com.researchspace.dataverse.entities.CitationField;
1811
import com.researchspace.dataverse.entities.CitationType;
1912
import com.researchspace.dataverse.entities.DataSetMetadataBlock;
2013
import com.researchspace.dataverse.entities.Dataset;
2114
import com.researchspace.dataverse.entities.DatasetVersion;
15+
import java.util.ArrayList;
16+
import java.util.Arrays;
17+
import java.util.Date;
18+
import java.util.HashMap;
19+
import java.util.List;
20+
import java.util.Map;
2221

2322
/**
2423
* /** <pre>
@@ -71,6 +70,7 @@ public class DatasetBuilder {
7170
private static final String AUTHOR_IDENTIFIER = "authorIdentifier";
7271
private static final String AUTHOR_AFFILIATION = "authorAffiliation";
7372
private static final String AUTHOR_NAME = "authorName";
73+
private static final String OTHER_REFERENCES = "otherReferences";
7474

7575
public Dataset build(DatasetFacade facade) {
7676
DatasetVersion dv = new DatasetVersion();
@@ -92,6 +92,7 @@ public Dataset build(DatasetFacade facade) {
9292
if (metadataLanguage != null) {
9393
toSubmit.setMetadataLanguage(facade.getMetadataLanguage());
9494
}
95+
9596
return toSubmit;
9697
}
9798

@@ -118,6 +119,7 @@ private List<CitationField> createFields(DatasetFacade facade, Citation citation
118119
addSubTitle(facade, fields);
119120
addAlternativeTitle(facade, fields);
120121
addAlternativeURL(facade, fields);
122+
addOtherReferences(facade, fields);
121123
return fields;
122124
}
123125

@@ -147,6 +149,14 @@ private void addLanguages(DatasetFacade facade, List<CitationField> fields) {
147149
}
148150
}
149151

152+
private void addOtherReferences(DatasetFacade facade, List<CitationField> fields) {
153+
if (facade.getOtherReferences() != null && !facade.getOtherReferences().isEmpty()) {
154+
CitationField field = createPrimitiveMultipleField(
155+
OTHER_REFERENCES, facade.getOtherReferences().toArray(new String[0]));
156+
fields.add(field);
157+
}
158+
}
159+
150160
private void addNotes(DatasetFacade facade, List<CitationField> fields) {
151161
if(!isEmpty(facade.getNote())){
152162
CitationField altUrl = createPrimitiveSingleField("notesText", facade.getNote());

src/main/java/com/researchspace/dataverse/entities/facade/DatasetFacade.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@
33
*/
44
package com.researchspace.dataverse.entities.facade;
55

6-
import lombok.*;
7-
86
import java.net.URL;
97
import java.util.ArrayList;
108
import java.util.Date;
119
import java.util.List;
10+
import lombok.AllArgsConstructor;
11+
import lombok.Builder;
12+
import lombok.Data;
13+
import lombok.NonNull;
14+
import lombok.Singular;
1215
/**
1316
* /** <pre>
1417
Copyright 2016 ResearchSpace
@@ -51,6 +54,7 @@ public class DatasetFacade {
5154
private String productionPlace;
5255
private @Singular List<DatasetContributor> contributors;
5356
private String metadataLanguage;
57+
private @Singular List<String> otherReferences;
5458
private License license;
5559

5660
/**

src/test/java/com/researchspace/dataverse/entities/facade/DatasetTestFactory.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public static DatasetFacade createFacade() throws MalformedURLException, URISynt
5656
.alternativeURL(new URL("https://www.myrepo.com"))
5757
.note("Some note")
5858
.languages(Arrays.asList(new String[] { "English", "French" }))
59+
.otherReference("https://raid.org/10.12345/NICO26")
5960
.build();
6061
}
6162

@@ -68,6 +69,7 @@ public static DatasetFacade createFacadeWithMetadataLanguage() {
6869
.subject("Chemistry")
6970
.languages(Arrays.asList(new String[] { "English", "French" }))
7071
.depositor("A depositor")
72+
.otherReference("https://raid.org/10.12345/NICO26")
7173
.contact(buildAContact())
7274
.build();
7375
}

0 commit comments

Comments
 (0)