-
Notifications
You must be signed in to change notification settings - Fork 1.8k
/
ChangeSetStatus.java
150 lines (120 loc) · 3.76 KB
/
ChangeSetStatus.java
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package liquibase.changelog;
import liquibase.change.CheckSum;
import liquibase.changelog.filter.ChangeSetFilter;
import liquibase.changelog.filter.ChangeSetFilterResult;
import java.util.Date;
import java.util.Set;
/**
* Contains the current status of a ChangeSet. Normally returned by {@link liquibase.changelog.visitor.StatusVisitor}.
* Contains information on whether the changeSet has ran before and will run next time.
*/
public class ChangeSetStatus {
private final ChangeSet changeSet;
private final CheckSum currentCheckSum;
private String description;
private String comments;
private boolean willRun;
private Set<ChangeSetFilterResult> filterResults;
private CheckSum storedCheckSum;
private Date dateLastExecuted;
private boolean previouslyRan;
private RanChangeSet ranChangeSet;
public ChangeSetStatus(ChangeSet changeSet) {
this.changeSet = changeSet;
this.currentCheckSum = changeSet.generateCheckSum();
this.description = changeSet.getDescription();
this.comments = changeSet.getComments();
}
public ChangeSet getChangeSet() {
return changeSet;
}
public CheckSum getCurrentCheckSum() {
return currentCheckSum;
}
/**
* ChangeSet description
*/
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
/**
* ChangeSet comments
*/
public String getComments() {
return comments;
}
public void setComments(String comments) {
this.comments = comments;
}
/**
* Will the changeset run next time.
*/
public boolean getWillRun() {
return willRun;
}
public void setWillRun(boolean willRun) {
this.willRun = willRun;
}
/**
* Reasons the changeset will or will not run next time. Returns empty set if no reasons were given
*/
public Set<ChangeSetFilterResult> getFilterResults() {
return filterResults;
}
public void setFilterResults(Set<ChangeSetFilterResult> filterResults) {
this.filterResults = filterResults;
}
/**
* Convenience method to check wither a given ChangeSetFilter type is a reason for running the changeset or not.
*/
public boolean isFilteredBy(Class<? extends ChangeSetFilter> filterType) {
if (!willRun) {
return false;
}
if (filterResults == null) {
return false;
}
for (ChangeSetFilterResult result : filterResults) {
if (result.getFilter().equals(filterType)) {
return true;
}
}
return false;
}
/**
* Return the checksum stored from the last execution of the changeset. Returns null if it has not ran before
*/
public CheckSum getStoredCheckSum() {
return storedCheckSum;
}
public void setStoredCheckSum(CheckSum storedCheckSum) {
this.storedCheckSum = storedCheckSum;
}
/**
* Return the date the changeset was last executed. Returns null if it has not ran before
*/
public Date getDateLastExecuted() {
return dateLastExecuted;
}
public void setDateLastExecuted(Date dateLastExecuted) {
this.dateLastExecuted = dateLastExecuted;
}
/**
* Returns true if the changeset was ran previously.
*/
public boolean getPreviouslyRan() {
return previouslyRan;
}
public void setPreviouslyRan(boolean previouslyRan) {
this.previouslyRan = previouslyRan;
}
public RanChangeSet getRanChangeSet() {
return ranChangeSet;
}
public void setRanChangeSet(RanChangeSet ranChangeSet) {
this.ranChangeSet = ranChangeSet;
}
}