package com.beijunyi.parallelgit.filesystem; import java.io.File; import java.io.IOException; import javax.annotation.Nonnull; import com.beijunyi.parallelgit.filesystem.commands.*; import com.beijunyi.parallelgit.filesystem.utils.GfsConfiguration; import org.eclipse.jgit.lib.AnyObjectId; import org.eclipse.jgit.lib.Repository; import static com.beijunyi.parallelgit.filesystem.utils.GfsConfiguration.*; public final class Gfs { @Nonnull public static GitFileSystem newFileSystem(GfsConfiguration cfg) throws IOException { return GitFileSystemProvider.getDefault().newFileSystem(cfg); } @Nonnull public static GitFileSystem newFileSystem(Repository repo) throws IOException { return newFileSystem(repo(repo)); } @Nonnull public static GitFileSystem newFileSystem(File repoDir) throws IOException { return newFileSystem(fileRepo(repoDir)); } @Nonnull public static GitFileSystem newFileSystem(String repoDir) throws IOException { return newFileSystem(fileRepo(repoDir)); } @Nonnull public static GitFileSystem newFileSystem(String branch, Repository repo) throws IOException { return newFileSystem(repo(repo).branch(branch)); } @Nonnull public static GitFileSystem newFileSystem(String branch, File repoDir) throws IOException { return newFileSystem(fileRepo(repoDir).branch(branch)); } @Nonnull public static GitFileSystem newFileSystem(String branch, String repoDir) throws IOException { return newFileSystem(fileRepo(repoDir).branch(branch)); } @Nonnull public static GitFileSystem newFileSystem(AnyObjectId commit, Repository repo) throws IOException { return newFileSystem(repo(repo).commit(commit)); } @Nonnull public static GfsCheckout checkout(GitFileSystem gfs) { return new GfsCheckout(gfs); } @Nonnull public static GfsCommit commit(GitFileSystem gfs) { return new GfsCommit(gfs); } @Nonnull public static GfsMerge merge(GitFileSystem gfs) { return new GfsMerge(gfs); } @Nonnull public static GfsReset reset(GitFileSystem gfs) { return new GfsReset(gfs); } @Nonnull public static GfsCreateStash createStash(GitFileSystem gfs) { return new GfsCreateStash(gfs); } @Nonnull public static GfsApplyStash applyStash(GitFileSystem gfs) { return new GfsApplyStash(gfs); } }