public void performParse(EncodedWxStringParseContext context) throws EncodedWxElementParseException { double temperature = parseEncodedTemperature(context.getCurrentElement().substring(1, 5)); double dewpoint = parseEncodedTemperature(context.getCurrentElement().substring(5)); context.getObservation().getTemperatures().setAmbientTemperature(fromC(temperature)); context.getObservation().getTemperatures().setDewpoint(fromC(dewpoint)); }
public static Observation parseMetar(String metarString) { EncodedWxStringParseContext context = new EncodedWxStringParseContext(metarString); context.foreachElement( new ContextHandler() { public void handleElement(EncodedWxStringParseContext context) { for (EncodedWxElementParser parser : metarParserChain) { if (parser.canParseCurrentElement(context)) { try { parser.performParse(context); } catch (EncodedWxElementParseException ex) { ex.printStackTrace(); } } } } }); return context.getObservation(); }