Files
VF1000-CanadaDatamartProvider/src/com/flaremicro/visualforecast/datamart/DatamartTranslation.java
Flare Microsystems 37c506249a Initial Commit
2024-03-07 14:15:34 -08:00

118 lines
4.1 KiB
Java

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<Integer, Byte> iconTranslation = new HashMap<Integer, Byte>();
private HashMap<String, WeatherLines> stringTranslation = new HashMap<String, WeatherLines>();
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;
}
}