blob: 808adb1be2cca22937adf4be785aa6fd7d249652 [file] [log] [blame]
package com.intellij.vcs.log.data;
import com.intellij.vcs.log.Hash;
import com.intellij.vcs.log.VcsRef;
import org.jetbrains.annotations.NotNull;
import java.util.*;
/**
* @author erokhins
*/
public class RefsModel {
private final Collection<VcsRef> allRefs;
private final Set<Hash> trackedCommitHashes = new HashSet<Hash>();
public RefsModel(Collection<VcsRef> allRefs) {
this.allRefs = allRefs;
computeTrackedCommitHash();
}
private void computeTrackedCommitHash() {
for (VcsRef ref : allRefs) {
trackedCommitHashes.add(ref.getCommitHash());
}
}
public boolean isBranchRef(@NotNull Hash commitHash) {
for (VcsRef ref : refsToCommit(commitHash)) {
if (ref.getType().isBranch()) {
return true;
}
}
return false;
}
@NotNull
public List<VcsRef> refsToCommit(@NotNull Hash hash) {
List<VcsRef> refs = new ArrayList<VcsRef>();
if (trackedCommitHashes.contains(hash)) {
for (VcsRef ref : allRefs) {
if (ref.getCommitHash().equals(hash)) {
refs.add(ref);
}
}
}
return refs;
}
@NotNull
public Set<Hash> getTrackedCommitHashes() {
return Collections.unmodifiableSet(trackedCommitHashes);
}
@NotNull
public Collection<VcsRef> getAllRefs() {
return Collections.unmodifiableCollection(allRefs);
}
}