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