Olá pessoal, tou com uma dúvida aqui. Tenho um objeto ClimatologicGauge (estação climatológica) que contém diversos tipos de dados climatológicos (dados de chuva, de vento, …). Um objeto como este, quando carregado, contém uma quantidade de dados temporais muito grande. Estes dados são do tipo TimeSerieMinute, que é uma classe que dentro dela tem um HashTable<Date, Double>. Estou tentando serializar meu objeto mas não conseguo mostrar o essencial deste, cada dado da hashtable.
Segue minha classe ClimatologicGauge:
public class ClimatologicGauge extends Gauge {
//Array 10
private TimeSerieMinute array10PrecipitationAt15Min;
private TimeSerieMinute array10TempGroundAt5Cm;
private TimeSerieMinute array10TempGroundAt10Cm;
private TimeSerieMinute array10TempGroundAt25Cm;
private TimeSerieMinute array10WindSpeed;
private TimeSerieMinute array10WindDirection;
private TimeSerieMinute array10StandardDeviation;
//Array 20
private TimeSerieMinute array20PrecipitationAtEachMinute;
//Array 30
private TimeSerieMinute array30AirTemp;
private TimeSerieMinute array30AirHum;
private TimeSerieMinute array30PressionSAT;
private TimeSerieMinute array30PressionKPA;
private TimeSerieMinute array30SolarItensity;
private TimeSerieMinute array30GroundHum;
private TimeSerieMinute array30BarometricPression;
...
}
Onde cada um desses dados do tipo TimeSerieMinute representam um tipo de dado.
public class TimeSerieMinute {
private Map<Date, Double> hash;
public TimeSerieMinute(){
this.hash = new HashMap<Date, Double>();
}
public void setData(int year, int month, int day, int hour, int minute, double value) {
Calendar dateCalendar = Calendar.getInstance();
dateCalendar.set(Calendar.YEAR, year);
dateCalendar.set(Calendar.MONTH, month);
dateCalendar.set(Calendar.DATE, day);
dateCalendar.set(Calendar.HOUR_OF_DAY, hour);
dateCalendar.set(Calendar.MINUTE, minute);
dateCalendar.set(Calendar.SECOND, 0);
dateCalendar.set(Calendar.MILLISECOND, 0);
Date date = new Date(dateCalendar.getTimeInMillis());
this.hash.put(date, value);
}
...
}
O meu código que gero o XML é o seguinte:
XStream xstream = new XStream();
xstream.setMode(XStream.NO_REFERENCES);
xstream.alias("climatologic_gauge", ClimatologicGauge.class);
xstream.aliasAttribute(HydroLocation.class, "codeWatershed", "watershed_gauge");
xstream.aliasAttribute(HydroLocation.class, "code", "gauge_code");
xstream.aliasAttribute(HydroLocation.class, "name", "gauge_name");
xstream.aliasAttribute(HydroLocation.class, "xPosition", "x");
xstream.aliasAttribute(HydroLocation.class, "yPosition", "y");
xstream.aliasAttribute(HydroLocation.class, "elevation", "elevation");
xstream.addImplicitCollection(TimeSerieMinute.class, "hash", Map.class);
String xml = xstream.toXML(this.watershed.getClimatologicGauges());
System.out.println(xml);
Onde a linha
xstream.addImplicitCollection(TimeSerieMinute.class, "hash", Map.class);
Sempre dá pau!
Já tentei de tudo aqui, mas não consigo mesmo.
Espero que possam me ajudar…
[]'s