blob: 540caedcea02d5e436ace38b62f4013929348660 [file] [log] [blame]
package com.intellij.vcs.log.impl;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.vcs.log.Hash;
import com.intellij.vcs.log.VcsRef;
import com.intellij.vcs.log.VcsRefType;
import org.jetbrains.annotations.NotNull;
/**
* @author erokhins
*/
public final class VcsRefImpl implements VcsRef {
@NotNull private final Hash myCommitHash;
@NotNull private final String myName;
@NotNull private final VcsRefType myType;
@NotNull private final VirtualFile myRoot;
public VcsRefImpl(@NotNull Hash commitHash, @NotNull String name, @NotNull VcsRefType type, @NotNull VirtualFile root) {
myCommitHash = commitHash;
myName = name;
myType = type;
myRoot = root;
}
@Override
@NotNull
public VcsRefType getType() {
return myType;
}
@Override
@NotNull
public Hash getCommitHash() {
return myCommitHash;
}
@Override
@NotNull
public String getName() {
return myName;
}
@Override
@NotNull
public VirtualFile getRoot() {
return myRoot;
}
@Override
public String toString() {
return String.format("%s:%s(%s|%s)", myRoot.getName(), myName, myCommitHash, myType);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
VcsRefImpl ref = (VcsRefImpl)o;
if (!myCommitHash.equals(ref.myCommitHash)) return false;
if (!myName.equals(ref.myName)) return false;
if (!myRoot.equals(ref.myRoot)) return false;
if (myType != ref.myType) return false;
return true;
}
@Override
public int hashCode() {
int result = myCommitHash.hashCode();
result = 31 * result + (myName.hashCode());
result = 31 * result + (myRoot.hashCode());
result = 31 * result + (myType.hashCode());
return result;
}
}