Boa tarde, estou com duvida na parte do Comparable, no caso eu tenho a seguinte XML:
<NavioBTP>
<Id>1908</Id>
<Rap>01831 2017</Rap>
<Navio>SAN ALVARO</Navio>
<Viagem>718W</Viagem>
<Agencia>ALI</Agencia>
<PrevisaoChegada>01/06/2017 180000</PrevisaoChegada>
<Chegada>\/Date(1496336400000)\/</Chegada>
<PrevisaoAtracacao>\/Date(1496383200000)\/</PrevisaoAtracacao>
<Atracacao>\/Date(1496383200000)\/</Atracacao>
<PrevisaoSaida>02/06/2017 140000</PrevisaoSaida>
<Saida>\/Date(1496423700000)\/</Saida>
<AberturaGateDry></AberturaGateDry>
<AberturaGateRefeer></AberturaGateRefeer>
<DeadlineCarga></DeadlineCarga>
<Servico>SAE</Servico>
<Berco>BTP 3</Berco>
<Qtd>1</Qtd>
<PrevDescarga>49</PrevDescarga>
<PrevEmbarque>0</PrevEmbarque>
<PrevRemocao>0</PrevRemocao>
<DirecaoViagem></DirecaoViagem>
<Ordenador>2459</Ordenador>
</NavioBTP>
que é recebida de um website fora do meu sistema, e preciso passar para uma classe NavioBTP, que tem TODOS os atributos de data como Calendar, mas estou com problema na conversão pois, como podem ver alguns dos campos ali vem como \/Date(long)\/ e alguns como um texto formatado que conseguiria transformar utilizando o SimpleDateFormat,
ficou assim o Converter:
public class DataConverter implements Converter{
@Override
public boolean canConvert(Class type) {
return type.isAssignableFrom(Calendar.class);
}
@Override
public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) {
String data = (String) source;
Calendar calendar = Calendar.getInstance();
if(data.startsWith("\\/")){
calendar.setTimeInMillis(Long.valueOf(data.substring(data.indexOf("(")+1,(data.indexOf(")")))));
}else{
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HHmmss");
try {
calendar.setTimeInMillis(formatter.parse(data).getTime());
} catch (ParseException e) {
e.printStackTrace();
}
}
writer.setValue(calendar.toString());
}
@Override
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
return null;
}
espero que possam me dar uma luz, porque ficou bem confuso está parte pra mim!