[LIB-8] URL and HTML tag processing, new entities fields
[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     MoneySeedings (2013, Season.CURRENT_YEAR),
28     OneYearMoneyRankings (2013, Season.CURRENT_YEAR),
29
30     ProjectedMoneyRankings (2013, Season.CURRENT_YEAR),
31     ProjectedMoneySeedings (2013, Season.CURRENT_YEAR),
32     ProvOneYearMoneyRankings (2013, Season.CURRENT_YEAR),
33     ProjectedEndOfSeasonMoneySeedings (2014, Season.CURRENT_YEAR),
34     ProjectedGrandPrixMoneyRankings (2014, Season.CURRENT_YEAR),
35     ProjectedPCMoneyRankings (2016, Season.CURRENT_YEAR),
36     ProjectedWCMoneySeedings (2017, Season.CURRENT_YEAR),
37
38     PrevMoneyRankings (Season.CURRENT_YEAR - 1, Season.CURRENT_YEAR),
39     PrevMoneySeedings (Season.CURRENT_YEAR - 1, Season.CURRENT_YEAR),
40     PrevOneYearMoneyRankings (Season.CURRENT_YEAR - 1, Season.CURRENT_YEAR),
41     PrevOrderOfMerit (Season.CURRENT_YEAR - 1, Season.CURRENT_YEAR),
42
43     WorldGrandPrix2015Rankings (2014, 2014),
44     WorldGrandPrix2016Rankings (2015, 2015),
45     WorldGrandPrix2017Rankings (2017, 2018),
46     WorldGrandPrix2018Rankings (2018, 2018),
47
48     PC2017Rankings (2017, 2017),
49     PC2018Rankings (2018, 2018),
50
51     CombinedOrderofMerit2013 (2013, 2013),
52     CombinedOrderOfMerit2014 (2014, 2014),
53     CombinedOrderOfMerit2016 (2015, 2015),
54
55     Rankings (2010, 2013),
56     Seedings (2010, 2013),
57     OneYearRankings (2009, 2013),
58
59     OrderOfMerit (2010, 2015),
60     APTC (2012, 2015),
61     CombinedOrderofMerit (2013, 2015),
62
63     SeedingsAfterPTC6 (2011, 2011),
64     SeedingsAfterPTC12 (2011, 2011),
65     SeedingsAfterWelsh2012 (2011, 2011),
66     SeedingsAfterWorld2012 (2012, 2012),
67     SeedingsAfterUKPTC22012 (2012, 2012),
68     SeedingsAfterInternational2012 (2012, 2012),
69     ProjectedSeedings (2012, 2012),
70     SeedingsAfterWorld2013 (2012, 2012),
71     SeedingsAfterEPTC22013 (2013, 2013),
72     SeedingsAfterShanghaiMasters2013 (2013, 2013),
73     SeedingsAfterInternationalChampionship2013 (2013, 2013),
74     SeedingsAfterUKChampionship2013 (2013, 2013),
75     SeedingsAfterGermanMasters2014 (2013, 2013),
76     SeedingsAfterPTCFinals2014 (2013, 2013),
77     SeedingsAfterAustralian2014 (2014, 2014),
78     SeedingsAfterShanghai2014 (2014, 2014),
79     SeedingsAfterInternationalChampionship2014 (2014, 2014),
80     SeedingsAfterUKChampionship2014 (2014, 2014),
81     SeedingsAfterAPTC32015 (2014, 2014),
82     SeedingsAfterGermanMasters2015 (2014, 2014),
83     SeedingsAfterChinaOpen2015 (2014, 2014),
84     SeedingsAfterAustralian2015 (2015, 2015),
85     SeedingsAfterShanghai2015 (2015, 2015),
86     SeedingsAfterInternational2015 (2015, 2015),
87     SeedingsAfterUK2015 (2015, 2015),
88     SeedingsAfterEPTC52015 (2015, 2015),
89     SeedingsAfterGerman2016 (2015, 2015),
90     SeedingsAfterChina2016 (2015, 2015),
91     SeedingsAfterWorld2016 (2015, 2015),
92     SeedingsAfterWorldOpen2016 (2016, 2016),
93     SeedingsAfterPHC2016 (2016, 2016),
94     SeedingsAfterShanghai2016 (2016, 2016),
95     SeedingsAfterInternational2016 (2016, 2016),
96     SeedingsAfterUK2016 (2016, 2016),
97     SeedingsAfterScottish2016 (2016, 2016),
98     SeedingsAfterGerman2017 (2016, 2016),
99     SeedingsAfterChina2017 (2016, 2016),
100     SeedingsAfterWorld2017 (2017, 2017),
101     SeedingsAfterRiga2017 (2017, 2017),
102     SeedingsAfterIndian2017 (2017, 2017),
103     SeedingsAfterWorldOpen2017 (2017, 2017),
104     SeedingsAfterEuropean2017 (2017, 2017),
105     SeedingsAfterInternational2017 (2017, 2017),
106     SeedingsAfterNIO2017 (2017, 2017),
107     SeedingsAfterUK2017 (2017, 2017),
108     SeedingsAfterScottish2017 (2017, 2017),
109     SeedingsAfterGerman2018 (2017, 2017),
110     SeedingsAfterShootOut2018 (2017, 2017),
111
112     OrderOfMeritAfterPTC4 (2011, 2011),
113     OrderOfMeritAfterPTC8 (2011, 2011),
114     OrderOfMeritAfterPTC12 (2011, 2011),
115     OrderOfMeritAfterEPTC12012 (2012, 2012),
116     OrderOfMeritAfterEPTC32012 (2012, 2012),
117     OrderOfMeritAfterEPTC42012 (2012, 2012),
118     OrderOfMeritAfterEPTC12013 (2013, 2013),
119     OrderOfMeritAfterEPTC22013 (2013, 2013),
120     OrderOfMeritAfterEPTC42013 (2013, 2013),
121     OrderOfMeritAfterEPTC52013 (2013, 2013),
122     OrderOfMeritAfterEPTC62013 (2013, 2013),
123     OrderOfMeritAfterEPTC72013 (2013, 2013),
124     OrderOfMeritAfterEPTC82014 (2013, 2013),
125     OrderOfMeritAfterEPTC12014 (2014, 2014),
126     OrderOfMeritAfterEPTC22014 (2014, 2014),
127     OrderOfMeritAfterEPTC32014 (2014, 2014),
128     OrderOfMeritAfterEPTC42014 (2014, 2014),
129     OrderOfMeritAfterEPTC52014 (2014, 2014),
130     OrderOfMeritAfterEPTC12015 (2015, 2015),
131     OrderOfMeritAfterEPTC22015 (2015, 2015),
132     OrderOfMeritAfterEPTC32015 (2015, 2015),
133     OrderOfMeritAfterEPTC42015 (2015, 2015),
134     OrderOfMeritAfterEPTC52015 (2015, 2015),
135
136     APTCOrderOfMeritAfterAPTC22012 (2012, 2012),
137     APTCOrderOfMeritAfterAPTC12013 (2013, 2013),
138     APTCOrderOfMeritAfterAPTC22013 (2013, 2013),
139     APTCOrderOfMeritAfterAPTC32013 (2013, 2013),
140     APTCOrderOfMeritAfterAPTC12014 (2014, 2014),
141     APTCOrderOfMeritAfterAPTC22014 (2014, 2014),
142     APTCOrderOfMeritAfterAPTC12015 (2014, 2014);
143
144
145     private int startYear;
146     private int endYear;
147
148     RankingType(int startYear, int endYear) {
149         this.startYear = startYear;
150         this.endYear = endYear;
151     }
152
153     public static RankingType byName(String name) {
154         for (RankingType type : RankingType.values()) {
155             if (type.name().equals(name))
156                 return type;
157         }
158         return null;
159     }
160
161     public static RankingType byNameAndYear(String name, int year) {
162         for (RankingType type : RankingType.values()) {
163             if (type.name().equals(name))
164                 return type.isCorrectYear(year) ? type : null;
165         }
166         return null;
167     }
168
169     public boolean isCorrectYear(int year) {
170         return year >= startYear && year <= endYear;
171     }
172
173 }