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}