1 package com.aragost.javahg.merge;
2
3 import java.io.File;
4
5 import com.aragost.javahg.Changeset;
6 import com.aragost.javahg.Repository;
7 import com.aragost.javahg.commands.RevertCommand;
8
9
10
11
12
13
14
15 public abstract class MergeFile {
16
17 private String filename;
18
19 private ConflictResolvingContext mergeCtx;
20
21 public MergeFile(ConflictResolvingContext mergeCtx, String file) {
22 this.mergeCtx = mergeCtx;
23 this.filename = file;
24 }
25
26 public String getFilename() {
27 return filename;
28 }
29
30 public File getFile() {
31 return getRepository().file(getFilename());
32 }
33
34 public ConflictResolvingContext getMergeCtx() {
35 return mergeCtx;
36 }
37
38 void setMergeState(ConflictResolvingContext mergeState) {
39 this.mergeCtx = mergeState;
40 }
41
42 Repository getRepository() {
43 return this.mergeCtx.getRepository();
44 }
45
46 void revertTo(Changeset changeset) {
47 RevertCommand.on(getRepository()).rev(changeset.getNode()).execute(this.filename);
48 }
49
50 @Override
51 public String toString() {
52 return getClass().getSimpleName() + "[" + getFilename() + "]";
53 }
54
55 }