コード例 #1
0
  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();
  }
  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 boolean canParseCurrentElement(EncodedWxStringParseContext context) {

    return isTemperatureDewpointGroupElement(context.getCurrentElement());
  }