package tellh.com.gitclub.common.config;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Created by tlh on 2016/8/24 :)
*/
public class Constant {
public static final String URL_GITHUB = "https://api.github.com/";
public static final String URL_EXPLORE = "http://trending.codehub-app.com/";
public static final String URL_GANK = "http://gank.io/api/data/all/";
public static final String URL_ARSENAL = "http://182.254.233.29/arsenal_api/";
public static final int PER_PAGE = 10;
public static final int PER_PAGE_NEWS = 15;
public static final int PER_PAGE_GANK = 20;
public static final int PER_PAGE_ARSENAL = 15;
public interface SortType {
SortType getBestMatch();
String val();
enum SortType_User implements SortType {
BEST_MATCH("Best Match", null),
FOLLOWERS("Followers", "followers"),
REPOSITORIES("Repositories", "repositories"),
JOINED("Joined", "joined");
String display;
String value;
SortType_User(String key, String val) {
display = key;
value = val;
}
public static List<String> getDisplayStringList() {
List<String> list = new ArrayList<>(4);
for (SortType_User typeUser : SortType_User.values()) {
list.add(typeUser.display);
}
return list;
}
@Override
public String val() {
return value;
}
@Override
public String toString() {
return display;
}
@Override
public SortType getBestMatch() {
return SortType_User.BEST_MATCH;
}
public static SortType lookup(String key) {
for (SortType_User typeUser : SortType_User.values()) {
if (!typeUser.display.equalsIgnoreCase(key))
continue;
return typeUser;
}
return SortType_Repo.BEST_MATCH;
}
}
enum SortType_Repo implements SortType {
BEST_MATCH("Best Match", null),
STARS("Stars", "stars"),
FORKS("Forks", "forks"),
CREATED("Created", "created"),
UPDATED("Updated", "updated");
String display;
String value;
SortType_Repo(String key, String val) {
display = key;
value = val;
}
@Override
public String val() {
return value;
}
@Override
public String toString() {
return display;
}
@Override
public SortType getBestMatch() {
return SortType_Repo.BEST_MATCH;
}
public static List<String> getDisplayStringList() {
List<String> list = new ArrayList<>(5);
for (SortType_Repo typeRepo : SortType_Repo.values()) {
list.add(typeRepo.display);
}
return list;
}
public static List<String> getDisplayStringListForStarredRepo() {
return Arrays.asList(CREATED.display, STARS.display, UPDATED.display);
}
public static SortType lookup(String key) {
for (SortType_Repo typeRepo : SortType_Repo.values()) {
if (!typeRepo.display.equalsIgnoreCase(key))
continue;
return typeRepo;
}
return SortType_Repo.BEST_MATCH;
}
}
}
public enum Language {
ALL("All", "+language:any language"),
JAVA("Java", "+language:java"),
CSS("CSS", "+language:css"),
HTML("HTML", "+language:html"),
JAVASCRIPT("Javascript", "+language:javascript"),
OBJECTIVE_C("Objective-C", "+language:objective-c"),
SWIFT("Swift", "+language:swift"),
SHELL("Shell", "+language:bash"),
C("C", "+language:c"),
CPP("C++", "+language:cpp"),
CSHARP("C#", "+language:csharp"),
Python("Python", "+language:python"),
Ruby("Ruby", "+language:Ruby"),
Go("Go", "+language:Go"),
PHP("PHP", "+language:PHP"),
ASP("ASP", "+language:aspx-vb"),
ANDROID("Android", " android+language:java"),
WEB("Web", "+language:css+language:html+language:javascript");
String value;
String display;
Language(String key, String val) {
value = val;
display = key;
}
public String val() {
return value;
}
@Override
public String toString() {
return val();
}
public static List<String> getDisplayStringList() {
List<String> list = new ArrayList<>(18);
for (Language lang : Language.values()) {
list.add(lang.display);
}
return list;
}
}
public enum LangTrending {
ALL("All", ""),
JAVA("Java", "java"),
CSS("CSS", "css"),
HTML("HTML", "html"),
JAVASCRIPT("Javascript", "javascript"),
OBJECTIVE_C("Objective-C", "objective-c"),
SWIFT("Swift", "swift"),
SHELL("Shell", "bash"),
C("C", "c"),
CPP("C++", "cpp"),
CSHARP("C#", "csharp"),
Python("Python", "python"),
Ruby("Ruby", "Ruby"),
Go("Go", "go"),
PHP("PHP", "PHP"),
ASP("ASP", "aspx-vb");
String value;
String display;
static String keyInMap = "language";
public static String key() {
return keyInMap;
}
LangTrending(String key, String val) {
value = val;
display = key;
}
@Override
public String toString() {
return value;
}
public static List<String> getDisplayStringList() {
List<String> list = new ArrayList<>(15);
for (LangTrending lang : LangTrending.values()) {
list.add(lang.display);
}
return list;
}
}
public enum Since {
TODAY("Daily", "daily"),
THIS_WEEK("Weekly", "weekly"),
THIS_MONTH("Monthly", "monthly");
private final String display;
String value;
static String keyInMap = "since";
Since(String key, String val) {
value = val;
display = key;
}
public static String key() {
return keyInMap;
}
@Override
public String toString() {
return value;
}
public static List<String> getDisplayStringList() {
List<String> list = new ArrayList<>(3);
for (Since since : Since.values()) {
list.add(since.display);
}
return list;
}
}
}