| /* |
| * Copyright (C) 2022, Tencent. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Distribution License v. 1.0 which is available at |
| * https://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| package org.eclipse.jgit.internal.storage.commitgraph; |
| |
| import org.eclipse.jgit.lib.AnyObjectId; |
| import org.eclipse.jgit.lib.ObjectId; |
| |
| /** |
| * Support for the commit-graph v1 format. |
| * |
| * @see CommitGraph |
| */ |
| class CommitGraphV1 implements CommitGraph { |
| |
| private final GraphObjectIndex idx; |
| |
| private final GraphCommitData commitData; |
| |
| private final GraphChangedPathFilterData cpfData; |
| |
| CommitGraphV1(GraphObjectIndex index, GraphCommitData commitData, |
| GraphChangedPathFilterData cpfData) { |
| this.idx = index; |
| this.commitData = commitData; |
| this.cpfData = cpfData; |
| } |
| |
| @Override |
| public int findGraphPosition(AnyObjectId commit) { |
| return idx.findGraphPosition(commit); |
| } |
| |
| @Override |
| public CommitData getCommitData(int graphPos) { |
| if (graphPos < 0 || graphPos >= getCommitCnt()) { |
| return null; |
| } |
| return commitData.getCommitData(graphPos); |
| } |
| |
| @Override |
| public ObjectId getObjectId(int graphPos) { |
| return idx.getObjectId(graphPos); |
| } |
| |
| @Override |
| public ChangedPathFilter getChangedPathFilter(int graphPos) { |
| return cpfData.getChangedPathFilter(graphPos); |
| } |
| |
| @Override |
| public long getCommitCnt() { |
| return idx.getCommitCnt(); |
| } |
| } |