-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathDatasetOperations.java
More file actions
95 lines (82 loc) · 3.02 KB
/
DatasetOperations.java
File metadata and controls
95 lines (82 loc) · 3.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*
*
*/
package com.researchspace.dataverse.api.v1;
import com.researchspace.dataverse.entities.*;
import com.researchspace.dataverse.entities.facade.DatasetFacade;
import com.researchspace.dataverse.http.FileUploadMetadata;
import java.io.File;
import java.io.InputStream;
import java.util.List;
/**
<pre>
Copyright 2016 ResearchSpace
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
</pre>
* @author richard
*
* Operations on Datasets
*
*
*/
public interface DatasetOperations {
/**
* @param facade The {@link DatasetFacade} containing the updated DataSet data.
* @param id The {@link DataSetMetadataBlock} identifier
* @return A {@link DatasetVersion}
*/
DatasetVersion updateDataset(DatasetFacade facade, Identifier id);
/**
* Retrieves a {@link Dataset} based on its Id.
* @param dsIdentifier
* @return
*/
Dataset getDataset(Identifier dsIdentifier);
/**
* Gets list of metadata about different Dataset versions.
* @param dsIdentifier
* @return
*/
List<DatasetVersion> getDatasetVersions(Identifier dsIdentifier);
/**
* Upload a file to a dataset using Dataverse's native API.
* @param metadata Metadata to attach to the file upload
* @param dsIdentifier The persistent identifier of the dataset
* @param data bytes of data to upload
* @param fileName The name of the file to be created on Dataverse
* @return DatasetFileList information about the uploaded file.
*/
DatasetFileList uploadNativeFile( byte[] data, FileUploadMetadata metadata, Identifier dsIdentifier, String fileName);
/**
* Upload a file to a dataset using Dataverse's native API.
* @param metadata Metadata to attach to the file upload
* @param contentLength The length of the stream
* @param dsIdentifier The persistent identifier of the dataset
* @param data bytes of data to upload
* @param fileName The name of the file to be created on Dataverse
* @return DatasetFileList information about the uploaded file.
*/
DatasetFileList uploadNativeFile(InputStream data, long contentLength, FileUploadMetadata metadata,
Identifier dsIdentifier, String fileName);
/**
* Deletes a {@link Dataset}
* @param dsIdentifier
* @return
*/
DvMessage deleteDataset(Identifier dsIdentifier);
/**
* Publishes a DataSet, if the parent dataverse is published.
* @param dsIdentifier
* @param version Major/Minor
* @return A {@link DataverseResponse} with an error message if Dataset could not be published.
*/
DataverseResponse<PublishedDataset> publishDataset(Identifier dsIdentifier, Version version);
}