001package apps.util.issuereporter;
002
003import javax.annotation.Nonnull;
004
005import jmri.spi.JmriServiceProviderInterface;
006
007import org.apiguardian.api.API;
008
009/**
010 *
011 * @author Randall Wood
012 */
013@API(status = API.Status.EXPERIMENTAL)
014public interface GitHubRepository extends Comparable<GitHubRepository>, JmriServiceProviderInterface {
015
016    @Override
017    public default int compareTo(GitHubRepository o) {
018        return getTitle().compareTo(o.getTitle());
019    }
020
021    /**
022     * Get the repository name.
023     *
024     * @return the name
025     */
026    @Nonnull
027    public String getName();
028
029    /**
030     * Get the repository owner.
031     *
032     * @return the owner
033     */
034    @Nonnull
035    public String getOwner();
036
037    /**
038     * Get the title to display to a user. Override if this is not the same as
039     * {@link #getName()}.
040     *
041     * @return the title
042     */
043    @Nonnull
044    public default String getTitle() {
045        return getName();
046    }
047}