forked from gooddata/gooddata-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathModelDiff.java
More file actions
83 lines (70 loc) · 2.95 KB
/
ModelDiff.java
File metadata and controls
83 lines (70 loc) · 2.95 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
/*
* Copyright (C) 2007-2014, GoodData(R) Corporation. All rights reserved.
*/
package com.gooddata.model;
import org.codehaus.jackson.annotate.JsonCreator;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.annotate.JsonPropertyOrder;
import org.codehaus.jackson.annotate.JsonTypeInfo;
import org.codehaus.jackson.annotate.JsonTypeName;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import java.util.Collections;
import java.util.List;
/**
* TODO
*/
@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME)
@JsonTypeName("projectModelDiff")
@JsonSerialize(include = JsonSerialize.Inclusion.ALWAYS)
@JsonPropertyOrder({"updateOperations", "updateScripts"})
@JsonIgnoreProperties(ignoreUnknown = true)
public class ModelDiff {
private final List<UpdateOperation> updateOperations;
private final List<UpdateScript> updateScripts;
/**
* @param updateOperations informal structured representation of the diff; suitable for presentation purposes
* @param updateScripts
*/
@JsonCreator
public ModelDiff(@JsonProperty("updateOperations") List<UpdateOperation> updateOperations,
@JsonProperty("updateScripts") List<UpdateScript> updateScripts) {
this.updateOperations = updateOperations == null ? Collections.<UpdateOperation>emptyList() : updateOperations;
this.updateScripts = updateScripts == null ? Collections.<UpdateScript>emptyList() : updateScripts;
}
/**
* Returns informal structured representation of the diff. Suitable for presentation purposes.
*
* Returned list will be empty if there are no differences.
*/
public List<UpdateOperation> getUpdateOperations() {
return Collections.unmodifiableList(updateOperations);
}
/**
* Returns several variants of MAQL DDL evolution scripts that should be executed to update the source model to the
* target state. Individual variants differ in their side-effects (truncation of loaded data, drops of related objects...)
*
* Will be empty for empty diff.
*/
public List<UpdateScript> getUpdateScripts() {
return Collections.unmodifiableList(updateScripts);
}
@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME)
@JsonTypeName("updateOperation")
@JsonIgnoreProperties(ignoreUnknown = true)
public static class UpdateOperation {
}
@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME)
@JsonTypeName("updateScript")
@JsonIgnoreProperties(ignoreUnknown = true)
public static class UpdateScript {
private List<String> maqlChunks;
@JsonCreator
public UpdateScript(@JsonProperty("maqlDdlChunks") List<String> maqlChunks) {
this.maqlChunks = maqlChunks;
}
public List<String> getMaqlChunks() {
return maqlChunks;
}
}
}