// Path: src/org/github/irengrig/fossil4idea/repository/FossilRevisionNumber.java
// public class FossilRevisionNumber implements VcsRevisionNumber {
//   public final static FossilRevisionNumber UNKNOWN = new FossilRevisionNumber("0", null);
// 
//   // todo special HEAD revision??
//   @NotNull
//   private final String myHash;
//   private final Date myDate;
// 
//   public FossilRevisionNumber(final String hash, @Nullable final Date date) {
//     myHash = hash;
//     myDate = date;
//   }
// 
//   @Override
//   public String asString() {
//     return myHash;
//   }
// 
//   @Override
//   public int compareTo(final VcsRevisionNumber o) {
//     if (o instanceof FossilRevisionNumber) {
//       if (myDate != null && ((FossilRevisionNumber) o).myDate != null) {
//         return myDate.compareTo(((FossilRevisionNumber) o).myDate);
//       }
//     }
//     return 0;
//   }
// 
//   @NotNull
//   public String getHash() {
//     return myHash;
//   }
// 
//   public Date getDate() {
//     return myDate;
//   }
// 
//   @Override
//   public boolean equals(final Object o) {
//     if (this == o) return true;
//     if (o == null || getClass() != o.getClass()) return false;
// 
//     final FossilRevisionNumber that = (FossilRevisionNumber) o;
// 
//     if (!myHash.equals(that.myHash)) return false;
// 
//     return true;
//   }
// 
//   @Override
//   public int hashCode() {
//     return myHash.hashCode();
//   }
// }


import com.intellij.openapi.project.Project;
import com.intellij.openapi.vcs.FilePath;
import com.intellij.openapi.vcs.FilePathImpl;
import com.intellij.openapi.vcs.annotate.AnnotationSourceSwitcher;
import com.intellij.openapi.vcs.annotate.FileAnnotation;
import com.intellij.openapi.vcs.annotate.LineAnnotationAspect;
import com.intellij.openapi.vcs.annotate.LineAnnotationAspectAdapter;
import com.intellij.openapi.vcs.history.VcsFileRevision;
import com.intellij.openapi.vcs.history.VcsRevisionNumber;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.text.DateFormatUtil;
import org.jetbrains.annotations.Nullable;
import org.github.irengrig.fossil4idea.repository.FossilRevisionNumber;
import java.util.*;
package org.github.irengrig.fossil4idea.log;



/**
 * Created with IntelliJ IDEA.
 * User: Irina.Chernushina
 * Date: 2/24/13
 * Time: 9:14 PM
 */
public class FossilFileAnnotation extends FileAnnotation {
  final Map<Integer, ArtifactInfo> myMap;
  private int myMaxIdx;
  private final Project myProject;
  private final String myContent;
// Path: src/org/github/irengrig/fossil4idea/repository/FossilRevisionNumber.java
// public class FossilRevisionNumber implements VcsRevisionNumber {
//   public final static FossilRevisionNumber UNKNOWN = new FossilRevisionNumber("0", null);
// 
//   // todo special HEAD revision??
//   @NotNull
//   private final String myHash;
//   private final Date myDate;
// 
//   public FossilRevisionNumber(final String hash, @Nullable final Date date) {
//     myHash = hash;
//     myDate = date;
//   }
// 
//   @Override
//   public String asString() {
//     return myHash;
//   }
// 
//   @Override
//   public int compareTo(final VcsRevisionNumber o) {
//     if (o instanceof FossilRevisionNumber) {
//       if (myDate != null && ((FossilRevisionNumber) o).myDate != null) {
//         return myDate.compareTo(((FossilRevisionNumber) o).myDate);
//       }
//     }
//     return 0;
//   }
// 
//   @NotNull
//   public String getHash() {
//     return myHash;
//   }
// 
//   public Date getDate() {
//     return myDate;
//   }
// 
//   @Override
//   public boolean equals(final Object o) {
//     if (this == o) return true;
//     if (o == null || getClass() != o.getClass()) return false;
// 
//     final FossilRevisionNumber that = (FossilRevisionNumber) o;
// 
//     if (!myHash.equals(that.myHash)) return false;
// 
//     return true;
//   }
// 
//   @Override
//   public int hashCode() {
//     return myHash.hashCode();
//   }
// }


// Path: src/org/github/irengrig/fossil4idea/log/FossilFileAnnotation.java
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vcs.FilePath;
import com.intellij.openapi.vcs.FilePathImpl;
import com.intellij.openapi.vcs.annotate.AnnotationSourceSwitcher;
import com.intellij.openapi.vcs.annotate.FileAnnotation;
import com.intellij.openapi.vcs.annotate.LineAnnotationAspect;
import com.intellij.openapi.vcs.annotate.LineAnnotationAspectAdapter;
import com.intellij.openapi.vcs.history.VcsFileRevision;
import com.intellij.openapi.vcs.history.VcsRevisionNumber;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.text.DateFormatUtil;
import org.jetbrains.annotations.Nullable;
import org.github.irengrig.fossil4idea.repository.FossilRevisionNumber;
import java.util.*;

package org.github.irengrig.fossil4idea.log;



/**
 * Created with IntelliJ IDEA.
 * User: Irina.Chernushina
 * Date: 2/24/13
 * Time: 9:14 PM
 */
public class FossilFileAnnotation extends FileAnnotation {
  final Map<Integer, ArtifactInfo> myMap;
  private int myMaxIdx;
  private final Project myProject;
  private final String myContent;
  private final FossilRevisionNumber myNumber;