<commit_before>package playRepository;

import models.resource.Resource;
import org.codehaus.jackson.node.ObjectNode;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.tigris.subversion.javahl.ClientException;
import org.tmatesoft.svn.core.SVNException;

import java.io.IOException;
import java.util.List;

public interface PlayRepository {

    public abstract void create() throws IOException, ClientException;

    public abstract ObjectNode findFileInfo(String path) throws IOException, GitAPIException, SVNException;

    public abstract byte[] getRawFile(String path) throws IOException, SVNException;

    public abstract void delete();

    public abstract String getPatch(String commitId) throws GitAPIException, IOException, SVNException;

    public abstract List<Commit> getHistory(int page, int limit, String branch) throws IOException, GitAPIException, SVNException;

    public abstract List<String> getBranches();

    public abstract ObjectNode findFileInfo(String branch, String path) throws IOException, SVNException, GitAPIException;<commit_msg>rename parameter and updated javadoc of PlayRepository<commit_after>package playRepository;

import models.resource.Resource;
import org.codehaus.jackson.node.ObjectNode;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.tigris.subversion.javahl.ClientException;
import org.tmatesoft.svn.core.SVNException;

import java.io.IOException;
import java.util.List;

/**
 * 코드 저장소를 나타내는 클래스
 *
 * @see {@link GitRepository}
 * @see {@link SVNRepository}
 */
public interface PlayRepository {

    /**
     * 저장소를 생성한다.
     *
     * @throws IOException
     * @throws ClientException
     */
    public abstract void create() throws IOException, ClientException;

    /**
     * {@code path}가 디렉토리일 경우에는 해당 디렉토리에 들어있는 파일과 디렉토리 목록을 JSON으로 반환하고,
     * 파일일 경우에는 해당 파일 정보를 JSON으로 반환한다.
     *
     * @param path
     * @return
     * @throws IOException
     * @throws GitAPIException
     * @throws SVNException
     */
    public abstract ObjectNode findFileInfo(String path) throws IOException, GitAPIException, SVNException;

    /**
     * {@code path}에 해당하는 파일을 반환한다.
     *
     * @param path
     * @return
     * @throws IOException
     * @throws SVNException
     */
    public abstract byte[] getRawFile(String path) throws IOException, SVNException;

    /**
     * 저장소를 삭제한다.
     */
    public abstract void delete();

    /**
     * {@code commitId}에 해당하는 커밋의 변경 내역을 반환한다.
     *
     * @param commitId
     * @return
     * @throws GitAPIException
     * @throws IOException
     * @throws SVNException
     */
    public abstract String getPatch(String commitId) throws GitAPIException, IOException, SVNException;

    /**
     * {@code untilRevName}에 해당하는 리비전까지의 커밋 목록을 반환한다.
     *
     * @param pageNum 조회할 히스토리 페이지
     * @param pageSize 조회할 히스토리 페이지 당 개수
     * @param untilRev 조회할 커밋 중 가장 최근 커밋을 가리키는 리비전, 이 값이 null이면 HEAD
     * @return
     * @throws IOException
     * @throws GitAPIException
     * @throws SVNException
     */
    public abstract List<Commit> getHistory(int pageNum, int pageSize, String untilRev) throws IOException, GitAPIException, SVNException;

    /**
     * 브랜치 목록 조회
     *
     * @return 브랜치 이름 목록
     */
    public abstract List<String> getBranches();

    /**
     * {@code branch}에서 {@code path}가 디렉토리일 경우에는 해당 디렉토리에 들어있는 파일과 디렉토리 목록을 JSON으로 반환하고,
     * 파일일 경우에는 해당 파일 정보를 JSON으로 반환한다.
     *
     * @param branch
     * @param path
     * @return
     * @throws IOException
     * @throws SVNException
     * @throws GitAPIException
     */
    public abstract ObjectNode findFileInfo(String branch, String path) throws IOException, SVNException, GitAPIException;
{'fraction_non_alphanumeric': 0.08582995951417004, 'fraction_numerical': 0.0, 'mean_word_length': 3.279445727482679, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3614736', 'n_tokens_mistral': 1286, 'n_tokens_neox': 1426, 'n_words': 326}