[LIB-8] Add MoneySeedings ranking type
[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
36     PrevMoneyRankings (Season.CURRENT_YEAR - 1, Season.CURRENT_YEAR),
37     PrevMoneySeedings (Season.CURRENT_YEAR - 1, Season.CURRENT_YEAR),
38     PrevOneYearMoneyRankings (Season.CURRENT_YEAR - 1, Season.CURRENT_YEAR),
39     PrevOrderOfMerit (Season.CURRENT_YEAR - 1, Season.CURRENT_YEAR),
40
41     WorldGrandPrix2015Rankings (2014, 2014),
42     WorldGrandPrix2016Rankings (2015, 2015),
43
44     CombinedOrderofMerit2013 (2013, 2013),
45     CombinedOrderOfMerit2014 (2014, 2014),
46     CombinedOrderOfMerit2016 (2015, 2015),
47
48     Rankings (2010, 2013),
49     Seedings (2010, 2013),
50     OneYearRankings (2009, 2013),
51
52     OrderOfMerit (2010, 2015),
53     APTC (2012, 2015),
54     CombinedOrderofMerit (2013, 2015),
55
56     SeedingsAfterPTC6 (2011, 2011),
57     SeedingsAfterPTC12 (2011, 2011),
58     SeedingsAfterWelsh2012 (2011, 2011),
59     SeedingsAfterWorld2012 (2012, 2012),
60     SeedingsAfterUKPTC22012 (2012, 2012),
61     SeedingsAfterInternational2012 (2012, 2012),
62     ProjectedSeedings (2012, 2012),
63     SeedingsAfterWorld2013 (2012, 2012),
64     SeedingsAfterEPTC22013 (2013, 2013),
65     SeedingsAfterShanghaiMasters2013 (2013, 2013),
66     SeedingsAfterInternationalChampionship2013 (2013, 2013),
67     SeedingsAfterUKChampionship2013 (2013, 2013),
68     SeedingsAfterGermanMasters2014 (2013, 2013),
69     SeedingsAfterPTCFinals2014 (2013, 2013),
70     SeedingsAfterAustralian2014 (2014, 2014),
71     SeedingsAfterShanghai2014 (2014, 2014),
72     SeedingsAfterInternationalChampionship2014 (2014, 2014),
73     SeedingsAfterUKChampionship2014 (2014, 2014),
74     SeedingsAfterAPTC32015 (2014, 2014),
75     SeedingsAfterGermanMasters2015 (2014, 2014),
76     SeedingsAfterChinaOpen2015 (2014, 2014),
77     SeedingsAfterAustralian2015 (2015, 2015),
78     SeedingsAfterShanghai2015 (2015, 2015),
79     SeedingsAfterInternational2015 (2015, 2015),
80     SeedingsAfterUK2015 (2015, 2015),
81     SeedingsAfterEPTC52015 (2015, 2015),
82     SeedingsAfterGerman2016 (2015, 2015),
83     SeedingsAfterChina2016 (2015, 2015),
84     SeedingsAfterWorld2016 (2015, 2015),
85
86     OrderOfMeritAfterPTC4 (2011, 2011),
87     OrderOfMeritAfterPTC8 (2011, 2011),
88     OrderOfMeritAfterPTC12 (2011, 2011),
89     OrderOfMeritAfterEPTC12012 (2012, 2012),
90     OrderOfMeritAfterEPTC32012 (2012, 2012),
91     OrderOfMeritAfterEPTC42012 (2012, 2012),
92     OrderOfMeritAfterEPTC12013 (2013, 2013),
93     OrderOfMeritAfterEPTC22013 (2013, 2013),
94     OrderOfMeritAfterEPTC42013 (2013, 2013),
95     OrderOfMeritAfterEPTC52013 (2013, 2013),
96     OrderOfMeritAfterEPTC62013 (2013, 2013),
97     OrderOfMeritAfterEPTC72013 (2013, 2013),
98     OrderOfMeritAfterEPTC82014 (2013, 2013),
99     OrderOfMeritAfterEPTC12014 (2014, 2014),
100     OrderOfMeritAfterEPTC22014 (2014, 2014),
101     OrderOfMeritAfterEPTC32014 (2014, 2014),
102     OrderOfMeritAfterEPTC42014 (2014, 2014),
103     OrderOfMeritAfterEPTC52014 (2014, 2014),
104     OrderOfMeritAfterEPTC12015 (2015, 2015),
105     OrderOfMeritAfterEPTC22015 (2015, 2015),
106     OrderOfMeritAfterEPTC32015 (2015, 2015),
107     OrderOfMeritAfterEPTC42015 (2015, 2015),
108     OrderOfMeritAfterEPTC52015 (2015, 2015),
109
110     APTCOrderOfMeritAfterAPTC22012 (2012, 2012),
111     APTCOrderOfMeritAfterAPTC12013 (2013, 2013),
112     APTCOrderOfMeritAfterAPTC22013 (2013, 2013),
113     APTCOrderOfMeritAfterAPTC32013 (2013, 2013),
114     APTCOrderOfMeritAfterAPTC12014 (2014, 2014),
115     APTCOrderOfMeritAfterAPTC22014 (2014, 2014),
116     APTCOrderOfMeritAfterAPTC12015 (2014, 2014);
117
118
119     private int startYear;
120     private int endYear;
121
122     RankingType(int startYear, int endYear) {
123         this.startYear = startYear;
124         this.endYear = endYear;
125     }
126
127     public static RankingType byName(String name) {
128         for (RankingType type : RankingType.values()) {
129             if (type.name().equals(name))
130                 return type;
131         }
132         return null;
133     }
134
135     public static RankingType byNameAndYear(String name, int year) {
136         for (RankingType type : RankingType.values()) {
137             if (type.name().equals(name))
138                 return type.isCorrectYear(year) ? type : null;
139         }
140         return null;
141     }
142
143     public boolean isCorrectYear(int year) {
144         return year >= startYear && year <= endYear;
145     }
146
147 }