Skip to content

Commit 8b42f67

Browse files
authored
wip (#68)
Adds method for getting file metadata Changes type of file ID to long. Major version bump because of possibly backwards incompatible change.
1 parent 66ee309 commit 8b42f67

10 files changed

Lines changed: 59 additions & 17 deletions

File tree

examples/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<relativePath />
2626
</parent>
2727
<artifactId>dans-dataverse-client-lib-examples</artifactId>
28-
<version>1.11.1-SNAPSHOT</version>
28+
<version>2.0.0-SNAPSHOT</version>
2929
<name>DANS Dataverse Client Library Examples</name>
3030
<inceptionYear>2021</inceptionYear>
3131
<scm>

examples/src/main/java/nl/knaw/dans/lib/dataverse/example/DatasetDeleteFiles.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
public class DatasetDeleteFiles extends ExampleBase {
2626
public static void main(String[] args) throws Exception {
2727
String persistentId = args[0];
28-
List<Integer> fileIds = new ArrayList<>();
28+
List<Long> fileIds = new ArrayList<>();
2929
for (int i = 1; i < args.length; i++) {
30-
fileIds.add(Integer.parseInt(args[i]));
30+
fileIds.add(Long.parseLong(args[i]));
3131
}
3232
var r = client.dataset(persistentId).deleteFiles(fileIds);
3333
log.info("Response message: {}", r.getEnvelopeAsJson().toPrettyString());
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Copyright (C) 2021 DANS - Data Archiving and Networked Services (info@dans.knaw.nl)
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package nl.knaw.dans.lib.dataverse.example;
17+
18+
import lombok.extern.slf4j.Slf4j;
19+
import nl.knaw.dans.lib.dataverse.ExampleBase;
20+
21+
@Slf4j
22+
public class FileGetMetadata extends ExampleBase {
23+
public static void main(String[] args) throws Exception {
24+
var r = client.file(Long.parseLong(args[0])).getMetadata();
25+
log.info("Response message: {}", r.getEnvelopeAsJson().toPrettyString());
26+
27+
var checksum = r.getData().getDataFile().getChecksum();
28+
log.info("Checksum type = {}, value = {}", checksum.getType(), checksum.getValue());
29+
}
30+
}

lib/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<relativePath />
2626
</parent>
2727
<artifactId>dans-dataverse-client-lib</artifactId>
28-
<version>1.11.1-SNAPSHOT</version>
28+
<version>2.0.0-SNAPSHOT</version>
2929
<name>DANS Dataverse Client Library</name>
3030
<inceptionYear>2021</inceptionYear>
3131
<scm>

lib/src/main/java/nl/knaw/dans/lib/dataverse/DatasetApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -660,7 +660,7 @@ public DataverseHttpResponse<HashMap> setRetentionPeriod(String json) throws IOE
660660
return httpClientWrapper.postJsonString(subPath("files/actions/:set-retention"), json, params(emptyMap()), extraHeaders, HashMap.class);
661661
}
662662

663-
public DataverseHttpResponse<String> deleteFiles(List<Integer> fileIds) throws IOException, DataverseException {
663+
public DataverseHttpResponse<String> deleteFiles(List<Long> fileIds) throws IOException, DataverseException {
664664
return httpClientWrapper.putJsonString(subPath("deleteFiles"), httpClientWrapper.writeValueAsString(fileIds), params(emptyMap()), extraHeaders, String.class);
665665
}
666666

lib/src/main/java/nl/knaw/dans/lib/dataverse/DataverseClient.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -107,27 +107,27 @@ public SwordApi sword() {
107107
return new SwordApi(httpClientWrapper);
108108
}
109109

110-
public FileApi file(int id) {
110+
public FileApi file(long id) {
111111
return new FileApi(httpClientWrapper, String.valueOf(id), false);
112112
}
113113

114-
public FileApi file(int id, String invocationId) {
114+
public FileApi file(long id, String invocationId) {
115115
return new FileApi(httpClientWrapper, String.valueOf(id), false, invocationId);
116116
}
117117

118118
public DataAccessRequestsApi accessRequests(String pid) {
119119
return new DataAccessRequestsApi(httpClientWrapper, pid, true);
120120
}
121121

122-
public DataAccessRequestsApi accessRequests(int id) {
122+
public DataAccessRequestsApi accessRequests(long id) {
123123
return new DataAccessRequestsApi(httpClientWrapper, String.valueOf(id), false);
124124
}
125125

126126
public DataAccessRequestsApi accessRequests(String pid, String invocationId) {
127127
return new DataAccessRequestsApi(httpClientWrapper, pid, true, invocationId);
128128
}
129129

130-
public DataAccessRequestsApi accessRequests(int id, String invocationId) {
130+
public DataAccessRequestsApi accessRequests(long id, String invocationId) {
131131
return new DataAccessRequestsApi(httpClientWrapper, String.valueOf(id), false, invocationId);
132132
}
133133

@@ -139,12 +139,12 @@ public BasicFileAccessApi basicFileAccess(String pid, String invocationId) {
139139
return new BasicFileAccessApi(httpClientWrapper, pid, true, invocationId);
140140
}
141141

142-
public BasicFileAccessApi basicFileAccess(int id) {
143-
return new BasicFileAccessApi(httpClientWrapper, Integer.toString(id), false);
142+
public BasicFileAccessApi basicFileAccess(long id) {
143+
return new BasicFileAccessApi(httpClientWrapper, Long.toString(id), false);
144144
}
145145

146-
public BasicFileAccessApi basicFileAccess(int id, String invocationId) {
147-
return new BasicFileAccessApi(httpClientWrapper, Integer.toString(id), false, invocationId);
146+
public BasicFileAccessApi basicFileAccess(long id, String invocationId) {
147+
return new BasicFileAccessApi(httpClientWrapper, Long.toString(id), false, invocationId);
148148
}
149149

150150
public SearchApi search() {

lib/src/main/java/nl/knaw/dans/lib/dataverse/FileApi.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,16 @@ public class FileApi extends AbstractTargetedApi {
4343
super(httpClientWrapper, id, isPersistentId, invocationId, Paths.get("api/v1/files/"));
4444
}
4545

46+
/**
47+
* @return a {@link DataverseHttpResponse} object containing a {@link FileMeta} instance that contains the metadata of the requested file
48+
* @throws IOException if an I/O error occurs during the request or response processing
49+
* @throws DataverseException if the Dataverse API returns an error response
50+
* @see <a href="https://guides.dataverse.org/en/latest/api/native-api.html#get-json-representation-of-a-file" target="_blank">Dataverse documentation</a>
51+
*/
52+
public DataverseHttpResponse<FileMeta> getMetadata() throws IOException, DataverseException {
53+
return httpClientWrapper.get(subPath(""), params(emptyMap()), extraHeaders, FileMeta.class);
54+
}
55+
4656
// TODO: https://guides.dataverse.org/en/latest/api/native-api.html#restrict-files
4757
// TODO: https://guides.dataverse.org/en/latest/api/native-api.html#uningest-a-file
4858
// TODO: https://guides.dataverse.org/en/latest/api/native-api.html#reingest-a-file

lib/src/main/java/nl/knaw/dans/lib/dataverse/model/DataMessageWithId.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616
package nl.knaw.dans.lib.dataverse.model;
1717

1818
import lombok.Data;
19+
import lombok.EqualsAndHashCode;
1920

2021
@Data
22+
@EqualsAndHashCode(callSuper = true)
2123
public class DataMessageWithId extends DataMessage {
2224
private String id;
2325
}

lib/src/main/java/nl/knaw/dans/lib/dataverse/model/file/DataFile.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
public class DataFile {
3333
// Note that the following fields should align with those
3434
// in dataverse src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java
35-
private int id;
35+
private long id;
3636
private String persistentId;
3737
private String pidURL;
3838
private String filename;
@@ -50,8 +50,8 @@ public class DataFile {
5050
private String originalFileName;
5151
@JsonProperty("UNF")
5252
private String unf;
53-
private int rootDataFileId;
54-
private int previousDataFileId;
53+
private Long rootDataFileId;
54+
private Long previousDataFileId;
5555
// md5 is ignored!
5656
private Checksum checksum;
5757
private Boolean tabularData;

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
</parent>
2727

2828
<artifactId>dans-dataverse-client-lib-build</artifactId>
29-
<version>1.11.1-SNAPSHOT</version>
29+
<version>2.0.0-SNAPSHOT</version>
3030
<inceptionYear>2021</inceptionYear>
3131
<name>DANS Dataverse Client Library Master Build</name>
3232
<packaging>pom</packaging>

0 commit comments

Comments
 (0)