[LIB-2] Add snooker-score-api source files
[snooker-score-api.git] / src / main / java / org / hedgecode / snooker / api / RankingType.java
1 /*
2  * Copyright (c) 2017. Developed by Hedgecode.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.hedgecode.snooker.api;
18
19 /**
20  * Types of Ranking Entity.
21  *
22  * @author Dmitry Samoshin aka gotty
23  */
24 public enum RankingType {
25
26     MoneyRankings (2013, Season.CURRENT_YEAR),
27     OneYearMoneyRankings (2013, Season.CURRENT_YEAR),
28
29     ProjectedMoneyRankings (2013, Season.CURRENT_YEAR),
30     ProjectedMoneySeedings (2013, Season.CURRENT_YEAR),
31     ProvOneYearMoneyRankings (2013, Season.CURRENT_YEAR),
32     ProjectedEndOfSeasonMoneySeedings (2014, Season.CURRENT_YEAR),
33     ProjectedGrandPrixMoneyRankings (2014, Season.CURRENT_YEAR),
34
35     PrevMoneyRankings (Season.CURRENT_YEAR - 1, Season.CURRENT_YEAR),
36     PrevMoneySeedings (Season.CURRENT_YEAR - 1, Season.CURRENT_YEAR),
37     PrevOneYearMoneyRankings (Season.CURRENT_YEAR - 1, Season.CURRENT_YEAR),
38     PrevOrderOfMerit (Season.CURRENT_YEAR - 1, Season.CURRENT_YEAR),
39
40     WorldGrandPrix2015Rankings (2014, 2014),
41     WorldGrandPrix2016Rankings (2015, 2015),
42
43     CombinedOrderofMerit2013 (2013, 2013),
44     CombinedOrderOfMerit2014 (2014, 2014),
45     CombinedOrderOfMerit2016 (2015, 2015),
46
47     Rankings (2010, 2013),
48     Seedings (2010, 2013),
49     OneYearRankings (2009, 2013),
50
51     OrderOfMerit (2010, 2015),
52     APTC (2012, 2015),
53     CombinedOrderofMerit (2013, 2015),
54
55     SeedingsAfterPTC6 (2011, 2011),
56     SeedingsAfterPTC12 (2011, 2011),
57     SeedingsAfterWelsh2012 (2011, 2011),
58     SeedingsAfterWorld2012 (2012, 2012),
59     SeedingsAfterUKPTC22012 (2012, 2012),
60     SeedingsAfterInternational2012 (2012, 2012),
61     ProjectedSeedings (2012, 2012),
62     SeedingsAfterWorld2013 (2012, 2012),
63     SeedingsAfterEPTC22013 (2013, 2013),
64     SeedingsAfterShanghaiMasters2013 (2013, 2013),
65     SeedingsAfterInternationalChampionship2013 (2013, 2013),
66     SeedingsAfterUKChampionship2013 (2013, 2013),
67     SeedingsAfterGermanMasters2014 (2013, 2013),
68     SeedingsAfterPTCFinals2014 (2013, 2013),
69     SeedingsAfterAustralian2014 (2014, 2014),
70     SeedingsAfterShanghai2014 (2014, 2014),
71     SeedingsAfterInternationalChampionship2014 (2014, 2014),
72     SeedingsAfterUKChampionship2014 (2014, 2014),
73     SeedingsAfterAPTC32015 (2014, 2014),
74     SeedingsAfterGermanMasters2015 (2014, 2014),
75     SeedingsAfterChinaOpen2015 (2014, 2014),
76     SeedingsAfterAustralian2015 (2015, 2015),
77     SeedingsAfterShanghai2015 (2015, 2015),
78     SeedingsAfterInternational2015 (2015, 2015),
79     SeedingsAfterUK2015 (2015, 2015),
80     SeedingsAfterEPTC52015 (2015, 2015),
81     SeedingsAfterGerman2016 (2015, 2015),
82     SeedingsAfterChina2016 (2015, 2015),
83     SeedingsAfterWorld2016 (2015, 2015),
84
85     OrderOfMeritAfterPTC4 (2011, 2011),
86     OrderOfMeritAfterPTC8 (2011, 2011),
87     OrderOfMeritAfterPTC12 (2011, 2011),
88     OrderOfMeritAfterEPTC12012 (2012, 2012),
89     OrderOfMeritAfterEPTC32012 (2012, 2012),
90     OrderOfMeritAfterEPTC42012 (2012, 2012),
91     OrderOfMeritAfterEPTC12013 (2013, 2013),
92     OrderOfMeritAfterEPTC22013 (2013, 2013),
93     OrderOfMeritAfterEPTC42013 (2013, 2013),
94     OrderOfMeritAfterEPTC52013 (2013, 2013),
95     OrderOfMeritAfterEPTC62013 (2013, 2013),
96     OrderOfMeritAfterEPTC72013 (2013, 2013),
97     OrderOfMeritAfterEPTC82014 (2013, 2013),
98     OrderOfMeritAfterEPTC12014 (2014, 2014),
99     OrderOfMeritAfterEPTC22014 (2014, 2014),
100     OrderOfMeritAfterEPTC32014 (2014, 2014),
101     OrderOfMeritAfterEPTC42014 (2014, 2014),
102     OrderOfMeritAfterEPTC52014 (2014, 2014),
103     OrderOfMeritAfterEPTC12015 (2015, 2015),
104     OrderOfMeritAfterEPTC22015 (2015, 2015),
105     OrderOfMeritAfterEPTC32015 (2015, 2015),
106     OrderOfMeritAfterEPTC42015 (2015, 2015),
107     OrderOfMeritAfterEPTC52015 (2015, 2015),
108
109     APTCOrderOfMeritAfterAPTC22012 (2012, 2012),
110     APTCOrderOfMeritAfterAPTC12013 (2013, 2013),
111     APTCOrderOfMeritAfterAPTC22013 (2013, 2013),
112     APTCOrderOfMeritAfterAPTC32013 (2013, 2013),
113     APTCOrderOfMeritAfterAPTC12014 (2014, 2014),
114     APTCOrderOfMeritAfterAPTC22014 (2014, 2014),
115     APTCOrderOfMeritAfterAPTC12015 (2014, 2014);
116
117
118     private int startYear;
119     private int endYear;
120
121     RankingType(int startYear, int endYear) {
122         this.startYear = startYear;
123         this.endYear = endYear;
124     }
125
126     public static RankingType byName(String name) {
127         for (RankingType type : RankingType.values()) {
128             if (type.name().equals(name))
129                 return type;
130         }
131         return null;
132     }
133
134     public static RankingType byNameAndYear(String name, int year) {
135         for (RankingType type : RankingType.values()) {
136             if (type.name().equals(name))
137                 return type.isCorrectYear(year) ? type : null;
138         }
139         return null;
140     }
141
142     public boolean isCorrectYear(int year) {
143         return year >= startYear && year <= endYear;
144     }
145
146 }