View Javadoc

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   * Base class for files somehow related to a merge.
11   * <p>
12   * 
13   * @see MergeContext
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  }