Exemplo n.º 1
0
  private void loadOwsContext() throws LayerException {
    if (jaxbMapContext != null) {
      // Load bounding box
      if (jaxbMapContext.getGeneral().getBoundingBox() != null) {
        List<Double> lowerCorner =
            jaxbMapContext.getGeneral().getBoundingBox().getValue().getLowerCorner();
        List<Double> upperCorner =
            jaxbMapContext.getGeneral().getBoundingBox().getValue().getUpperCorner();
        if (lowerCorner.size() >= 2 && upperCorner.size() >= 2) {
          setBoundingBox(
              new Envelope(
                  lowerCorner.get(0), upperCorner.get(0), lowerCorner.get(1), upperCorner.get(1)));
        }
      }
      // Load title
      Description nextDescription = new Description();
      if (jaxbMapContext.getGeneral().getTitle() != null) {
        LanguageStringType title = jaxbMapContext.getGeneral().getTitle();
        Locale locale;
        if (title.getLang() != null) {
          locale = LocalizedText.forLanguageTag(title.getLang());
        } else {
          locale = Locale.getDefault();
        }
        nextDescription.addTitle(locale, title.getValue());
      }
      // Load abstract
      if (jaxbMapContext.getGeneral().getAbstract() != null) {
        LanguageStringType mapAbstract = jaxbMapContext.getGeneral().getAbstract();
        Locale locale;
        if (mapAbstract.getLang() != null) {
          locale = LocalizedText.forLanguageTag(mapAbstract.getLang());
        } else {
          locale = Locale.getDefault();
        }
        nextDescription.addAbstract(locale, mapAbstract.getValue());
      }
      setDescription(nextDescription);
      // Collect DataSource URI already loaded

      // Load layers and DataSource
      // Root layer correspond to ResourceList
      setRootLayer(createLayerCollection("root"));
      for (LayerType lt : jaxbMapContext.getResourceList().getLayer()) {
        try {
          parseJaxbLayer(lt, getLayerModel());
        } catch (LayerException ex) {
          // The layer is not created if a layer exception is thrown
          LOGGER.error(I18N.tr("The layer has not been imported"), ex);
        }
      }
    }
  }