package com.flaremicro.visualforecast.datamart; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import com.flaremicro.util.Util; import com.flaremicro.visualforecast.icons.IconProvider; public class DatamartTranslation { private HashMap iconTranslation = new HashMap(); private HashMap stringTranslation = new HashMap(); public DatamartTranslation() { iconTranslation.put(0, IconProvider.SUN.id); iconTranslation.put(1, IconProvider.PARTLY_CLOUDY.id); iconTranslation.put(2, IconProvider.PARTLY_CLOUDY.id); iconTranslation.put(3, IconProvider.PARTLY_CLOUDY.id); iconTranslation.put(4, IconProvider.PARTLY_CLOUDY.id); iconTranslation.put(5, IconProvider.PARTLY_CLOUDY.id); iconTranslation.put(6, IconProvider.SCATTERD_SHOWERS.id); iconTranslation.put(7, IconProvider.RAIN_SNOW.id); iconTranslation.put(8, IconProvider.SNOW.id); iconTranslation.put(9, IconProvider.RAIN_STORM.id); iconTranslation.put(10, IconProvider.CLOUD.id); iconTranslation.put(11, IconProvider.INVALID.id); iconTranslation.put(12, IconProvider.RAIN_LIGHT.id); iconTranslation.put(13, IconProvider.RAIN_HEAVY.id); iconTranslation.put(14, IconProvider.FREEZING_RAIN.id); iconTranslation.put(15, IconProvider.SCATTERD_SHOWERS.id); iconTranslation.put(16, IconProvider.SNOW.id); iconTranslation.put(17, IconProvider.SNOW.id); iconTranslation.put(18, IconProvider.BLIZZARD.id); iconTranslation.put(19, IconProvider.RAIN_STORM.id); iconTranslation.put(20, IconProvider.INVALID.id); iconTranslation.put(21, IconProvider.INVALID.id); iconTranslation.put(22, IconProvider.PARTLY_CLOUDY.id); iconTranslation.put(23, IconProvider.FOG.id); iconTranslation.put(24, IconProvider.FOG.id); iconTranslation.put(25, IconProvider.INVALID.id); iconTranslation.put(26, IconProvider.INVALID.id); iconTranslation.put(27, IconProvider.HAIL.id); iconTranslation.put(28, IconProvider.RAIN_LIGHTEST.id); iconTranslation.put(29, IconProvider.INVALID.id); iconTranslation.put(30, IconProvider.SUN.id); //MOON iconTranslation.put(31, IconProvider.PARTLY_CLOUDY.id); iconTranslation.put(32, IconProvider.PARTLY_CLOUDY.id); iconTranslation.put(33, IconProvider.CLOUD.id); iconTranslation.put(34, IconProvider.CLOUDY_CLOUDY.id); iconTranslation.put(35, IconProvider.PARTLY_CLOUDY.id); iconTranslation.put(36, IconProvider.SCATTERD_SHOWERS.id); iconTranslation.put(37, IconProvider.RAIN_LIGHT.id); iconTranslation.put(38, IconProvider.SNOW.id); iconTranslation.put(39, IconProvider.LIGHTNING_STORM.id); iconTranslation.put(40, IconProvider.SNOW.id); iconTranslation.put(41, IconProvider.INVALID.id); iconTranslation.put(42, IconProvider.INVALID.id); iconTranslation.put(43, IconProvider.INVALID.id); //WIND iconTranslation.put(44, IconProvider.INVALID.id); //SMOKE BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream("/translation.csv"))); String line; while((line = reader.readLine()) != null) { String[] info = line.split(","); if(info.length == 2) { stringTranslation.put(info[0].toLowerCase(), new WeatherLines(info[1], "")); } else if(info.length == 3) { stringTranslation.put(info[0].toLowerCase(), new WeatherLines(info[1], info[2])); } } } catch (IOException e) { e.printStackTrace(); } finally { Util.cleanClose(reader); } } public byte icon(int icon) { if(!iconTranslation.containsKey(icon)) return IconProvider.INVALID.id; return iconTranslation.get(icon); } public WeatherLines weatherName(String desc) { WeatherLines lines = stringTranslation.get(desc.toLowerCase()); if(lines == null) { System.out.println("FAILED:"+desc.toLowerCase()); return new WeatherLines("TRANSLAT.", "FAILURE"); } else return lines; } } class WeatherLines { public final String line1; public final String line2; public WeatherLines(String line1, String line2) { this.line1 = line1; this.line2 = line2; } }