All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.oliviercailloux.gitjfs.impl.GitPathRootShaCachedImpl Maven / Gradle / Ivy

package io.github.oliviercailloux.gitjfs.impl;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Verify.verify;
import static com.google.common.base.Verify.verifyNotNull;

import io.github.oliviercailloux.gitjfs.Commit;
import io.github.oliviercailloux.gitjfs.GitPathRootShaCached;
import java.util.Optional;
import org.eclipse.jgit.revwalk.RevCommit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class GitPathRootShaCachedImpl extends GitPathRootShaImpl implements GitPathRootShaCached {
  @SuppressWarnings("unused")
  private static final Logger LOGGER = LoggerFactory.getLogger(GitPathRootShaCachedImpl.class);

  protected GitPathRootShaCachedImpl(GitFileSystemImpl fileSystem, GitRev gitRev,
      RevCommit commit) {
    super(fileSystem, gitRev, Optional.of(commit));
    checkArgument(gitRev.isCommitId());
    checkArgument(commit.getId().equals(gitRev.getCommitId()));
    /*
     * Just to verify that it is parsed indeed (fails if for example the revcommit is obtained from
     * a revwalk that does not retain bodies).
     */
    verifyNotNull(commit.getRawBuffer());
  }

  @Deprecated
  @Override
  public GitPathRootShaCachedImpl toSha() {
    return this;
  }

  @Deprecated
  @Override
  public GitPathRootShaCachedImpl toShaCached() {
    return this;
  }

  @Override
  RevCommit getRevCommit() {
    verify(!revCommit.isEmpty());
    return revCommit.get();
  }

  @Override
  public Commit getCommit() {
    return getCommit(getRevCommit());
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy