5528fc564f44b718a85a83cb4aae3e1067682c0a
[JavaForFun] /
1 /**
2  * Copyright 2014 Gustavo Martin Morcuende
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 package name.gumartinm.weather.information.service;
17
18 import name.gumartinm.weather.information.R;
19
20 import java.util.HashMap;
21 import java.util.Map;
22
23 public enum IconsList {
24     ICON_01d("01d") {
25         @Override
26         public int getResourceDrawable() {
27             return R.drawable.weather_clear;
28         }
29     },
30     // TODO: I am sometimes receiving this code, there is no documentation about it on the
31     // openweathermap site.... But it exists!!! Some day, try to find out more information about it.
32     // see: http://openweathermap.org/img/w/01dd.png
33     ICON_01dd("01dd") {
34         @Override
35         public int getResourceDrawable() {
36             return R.drawable.weather_clear;
37         }
38     },
39     ICON_01n("01n") {
40         @Override
41         public int getResourceDrawable() {
42             return R.drawable.weather_clear_night;
43         }
44     },
45     ICON_02d("02d") {
46         @Override
47         public int getResourceDrawable() {
48             return R.drawable.weather_few_clouds;
49         }
50     },
51     ICON_02n("02n") {
52         @Override
53         public int getResourceDrawable() {
54             return R.drawable.weather_few_clouds_night;
55         }
56     },
57     ICON_03d("03d") {
58         @Override
59         public int getResourceDrawable() {
60             return R.drawable.weather_few_clouds;
61         }
62     },
63     ICON_03n("03n") {
64         @Override
65         public int getResourceDrawable() {
66             return R.drawable.weather_few_clouds;
67         }
68     },
69     ICON_04d("04d") {
70         @Override
71         public int getResourceDrawable() {
72             return R.drawable.weather_overcast;
73         }
74     },
75     ICON_04n("04n") {
76         @Override
77         public int getResourceDrawable() {
78             return R.drawable.weather_overcast;
79         }
80     },
81     ICON_09d("09d") {
82         @Override
83         public int getResourceDrawable() {
84             return R.drawable.weather_showers;
85         }
86     },
87     ICON_09n("09n") {
88         @Override
89         public int getResourceDrawable() {
90             return R.drawable.weather_showers;
91         }
92     },
93     ICON_10d("10d") {
94         @Override
95         public int getResourceDrawable() {
96             return R.drawable.weather_showers_scattered;
97         }
98     },
99     ICON_10n("10n") {
100         @Override
101         public int getResourceDrawable() {
102             return R.drawable.weather_showers_scattered;
103         }
104     },
105     ICON_11d("11d") {
106         @Override
107         public int getResourceDrawable() {
108             return R.drawable.weather_storm;
109         }
110     },
111     ICON_11n("11n") {
112         @Override
113         public int getResourceDrawable() {
114             return R.drawable.weather_storm;
115         }
116     },
117     ICON_13d("13d") {
118         @Override
119         public int getResourceDrawable() {
120             return R.drawable.weather_snow;
121         }
122     },
123     ICON_13n("13n") {
124         @Override
125         public int getResourceDrawable() {
126             return R.drawable.weather_snow;
127         }
128     },
129     ICON_50d("50d") {
130         @Override
131         public int getResourceDrawable() {
132             return R.drawable.weather_fog;
133         }
134     },
135     ICON_50n("50n") {
136         @Override
137         public int getResourceDrawable() {
138             return R.drawable.weather_fog;
139         }
140     };
141
142     private final String icon;
143     // Map with every enum constant. Class variable initializer. JLS§12.4.2
144     // Executed in textual order.
145     private static final Map<String, IconsList> codeMap = new HashMap<String, IconsList>();
146
147     // Static initializer. JLS§12.4.2 Executed in textual order.
148     static {
149         for (final IconsList code : IconsList.values()) {
150             codeMap.put(code.getIcon(), code);
151         }
152     }
153
154     private IconsList(final String icon) {
155         this.icon = icon;
156     }
157
158     public static final IconsList getIcon(final String icon) {
159         return codeMap.get(icon);
160     }
161
162     private String getIcon() {
163         return this.icon;
164     }
165
166     public abstract int getResourceDrawable();
167 }