forked from YoussefAhmed256/gitlet
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCommit.java
More file actions
55 lines (45 loc) · 1.61 KB
/
Commit.java
File metadata and controls
55 lines (45 loc) · 1.61 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
package gitlet;
import java.io.File;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
import java.util.TreeMap;
import static gitlet.Utils.join;
import static gitlet.Utils.writeObject;
public class Commit implements Serializable {
private String message;
private String firstParent;
private String secondParent;
private String hash;
private Date timeStamp;
private TreeMap<String,String>trackedFiles;
public Commit(String message, String firstParent, String secondParent, Date timeStamp , TreeMap<String,String>trackedFiles) {
this.message = message;
this.firstParent = firstParent;
this.secondParent = secondParent;
this.hash = Utils.sha1(message, firstParent, secondParent, timeStamp) ;
this.timeStamp = (timeStamp != null) ? timeStamp : new Date();;
this.trackedFiles = (trackedFiles != null) ? trackedFiles : new TreeMap<>();
}
public TreeMap<String, String> getTrackedFiles() {
return trackedFiles;
}
public String getHash() {
return hash;
}
public boolean containsFile(String fileName) {
return trackedFiles.containsKey(fileName);
}
public String getMessage() {return message;}
@Override
public String toString() {
return "Commit{" +
"timestamp=" + timeStamp +
", message='" + message + '\'' +
", parent='" + firstParent + '\'' +
", secondaryParent='" + secondParent + '\'' +
", trackedFiles=" + trackedFiles +
", hash='" + hash + '\'' +
'}';
}
}