Skip to content

Commit 9d5b0f1

Browse files
authored
Merge pull request #605 from Benky/master
Introduce functionality for data deletion during ETL
2 parents 37fd3e7 + 0cf0533 commit 9d5b0f1

3 files changed

Lines changed: 68 additions & 2 deletions

File tree

src/main/java/com/gooddata/dataset/DatasetManifest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public void setFile(String file) {
9191
public void setUploadMode(final UploadMode uploadMode) {
9292
notNull(uploadMode, "uploadMode");
9393
for (Part part : parts) {
94-
part.setUploadMode(uploadMode.name());
94+
part.setUploadMode(uploadMode.toString());
9595
}
9696
}
9797

src/main/java/com/gooddata/dataset/UploadMode.java

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,60 @@
55
*/
66
package com.gooddata.dataset;
77

8+
import java.util.HashMap;
9+
import java.util.Map;
10+
11+
/**
12+
* Upload modes enum.
13+
*/
814
public enum UploadMode {
9-
INCREMENTAL, FULL
15+
/**
16+
* Dataset input for loading in full mode (reload from scratch)
17+
*/
18+
FULL("FULL"),
19+
/**
20+
* Dataset input for loading data incrementally
21+
*/
22+
INCREMENTAL("INCREMENTAL"),
23+
/**
24+
* Dataset input for loading data by calculating based on its attributes.
25+
* Example: last sync, max timestamp, having timestamp field,...
26+
*/
27+
DEFAULT("DEFAULT"),
28+
/**
29+
* Dataset input for deleting
30+
*/
31+
DELETE_CENTER("DELETE-CENTER");
32+
33+
private static final Map<String, UploadMode> lookup = new HashMap<>();
34+
35+
static {
36+
for (UploadMode m : UploadMode.values()) {
37+
lookup.put(m.modeStr, m);
38+
}
39+
}
40+
41+
private final String modeStr;
42+
43+
/**
44+
* @param modeStr string representation of the upload mode
45+
*/
46+
UploadMode(final String modeStr) {
47+
this.modeStr = modeStr;
48+
}
49+
50+
/**
51+
* Lookup method.
52+
*
53+
* @param mode a string value passed in the constructor
54+
* @return UploadMode enum instance according to the given mode string
55+
*/
56+
public static UploadMode get(String mode) {
57+
return lookup.get(mode);
58+
}
59+
60+
@Override
61+
public String toString() {
62+
return this.modeStr;
63+
}
1064
}

src/test/java/com/gooddata/dataset/DatasetManifestTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,18 @@ public void shouldSetUploadModeForAllParts() throws Exception {
6161
assertThat(manifest.getParts().get(1).getUploadMode(), is("INCREMENTAL"));
6262
}
6363

64+
@Test
65+
public void shouldSetUploadModeDeleteForAllParts() throws Exception {
66+
final DatasetManifest manifest = new DatasetManifest("dataset", "file.csv", asList(
67+
new DatasetManifest.Part("FULL", "col1", asList("attr1"), true, null),
68+
new DatasetManifest.Part("FULL", "col2", asList("attr2"), true, null)
69+
));
70+
manifest.setUploadMode(UploadMode.DELETE_CENTER);
71+
72+
assertThat(manifest.getParts().get(0).getUploadMode(), is("DELETE-CENTER"));
73+
assertThat(manifest.getParts().get(1).getUploadMode(), is("DELETE-CENTER"));
74+
}
75+
6476
@Test
6577
public void shouldSetMapping() throws Exception {
6678
final DatasetManifest manifest = new DatasetManifest("dataset", "file.csv", asList(

0 commit comments

Comments
 (0)