-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathDatasetOperations.java
More file actions
96 lines (82 loc) · 2.8 KB
/
DatasetOperations.java
File metadata and controls
96 lines (82 loc) · 2.8 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
96
/*
*
*/
package com.researchspace.dataverse.api.v1;
import java.io.File;
import java.io.InputStream;
import java.util.List;
import com.researchspace.dataverse.entities.DataSetMetadataBlock;
import com.researchspace.dataverse.entities.Dataset;
import com.researchspace.dataverse.entities.DatasetVersion;
import com.researchspace.dataverse.entities.DataverseResponse;
import com.researchspace.dataverse.entities.DvMessage;
import com.researchspace.dataverse.entities.Identifier;
import com.researchspace.dataverse.entities.PublishedDataset;
import com.researchspace.dataverse.entities.Version;
import com.researchspace.dataverse.entities.facade.DatasetFacade;
/**
<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);
/**
* Uploads a file to a dataset
* @param doi The DOI of the Dataset
* @param file The file to add to the DataSet
*/
void uploadFile(String doi, File file);
/**
* Uploads a file using a data stream.
*
* @param doi Identifier of the dataset that we are sending the data to.
* @param file Stream of data to the contents of the file to upload.
* @param filename Name of the file.
*/
void uploadFile(String doi, InputStream file, 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);
}