package com.atlassian.stash.internal.scm.git.submodule;

import javax.annotation.Nonnull;
import java.net.URI;

/**
 * @since 2.3
 */
interface GitSubmoduleUriHandler {

    /**
     * Processes a given {@code uri} and transforms it into an application-specific pair of URLs.
     *
     * @param uri       to be processed
     * @param contentId to be appended to the second URL result
     * @return a pair of URLs, the first linking to a repository, the second to a specific commit specific by {@param contentId}.
     */
    @Nonnull
    SubmoduleUrls process(@Nonnull URI uri, @Nonnull String contentId);
}
