public void adjustLayerWmsNameAndUrl(LayerDefinition layerDefinition) throws IOException {
    String layerURL = null;
    String layersParam = null;
    String type = layerDefinition.getLayerType();
    if (isMyPlacesType(layerDefinition)) {

      if (layerDefinition.getWmsurl() != null && layerDefinition.getWmsname() != null) {
        layerURL =
            ConfigValue.LAYER_URLTEMPLATE_MYPLACES.getConfigProperty(props).split("\\?")[0]
                + "?"
                + layerDefinition.getWmsurl().split("\\?")[1];
        layersParam =
            URLEncoder.encode(
                ConfigValue.LAYER_URLTEMPLATE_MYPLACES_LAYERS.getConfigProperty(props), "UTF-8");
      } else {

        String[] splitter = layerDefinition.getLayerid().split("_");
        layerURL =
            String.format(
                ConfigValue.LAYER_URLTEMPLATE_MYPLACES.getConfigProperty(props), splitter[1]);
        layersParam =
            URLEncoder.encode(
                ConfigValue.LAYER_URLTEMPLATE_MYPLACES_LAYERS.getConfigProperty(props), "UTF-8");
      }
    } else if ("wmslayer".equals(type)) {
      layerURL = layerDefinition.getWmsurl();
      layersParam = URLEncoder.encode(layerDefinition.getWmsname(), "UTF-8");
    } else if ("base".equals(type) || "groupMap".equals(type)) {
      layerURL = layerDefinition.getWmsurl();
      if (layerDefinition.getWmsname() != null) {
        layersParam = URLEncoder.encode(layerDefinition.getWmsname(), "UTF-8");
      }

    } else if ("wfslayer".equals(type)) {
      layerURL =
          String.format(
              ConfigValue.LAYER_URLTEMPLATE_WFSLAYER.getConfigProperty(props),
              layerDefinition.getLayerid());
      layersParam = URLEncoder.encode(layerDefinition.getLayerid(), "UTF-8");
    } else if ("statslayer".equals(type)) {
      layerURL =
          String.format(
              ConfigValue.LAYER_URLTEMPLATE_STATSLAYER.getConfigProperty(props),
              layerDefinition.getLayerid());
      layersParam = URLEncoder.encode(layerDefinition.getLayerid(), "UTF-8");
    } else if ("geojson".equals(type)) {

    } else if ("wmtslayer".equals(type)) {
      layerURL = layerDefinition.getWmsurl();
      layersParam = URLEncoder.encode(layerDefinition.getWmsname(), "UTF-8");
      if (layerURL != null) {
        if (layerURL.indexOf('?') != -1) {
          layerURL = layerURL.substring(0, layerURL.indexOf('?'));
        }
      }
    } else {
      throw new IOException("Unknown layertype " + type);
    }

    layerDefinition.setWmsname(layersParam);
    layerDefinition.setWmsurl(layerURL);
  }
 public boolean isMyPlacesType(LayerDefinition layerDefinition) {
   return layerDefinition.getLayerType() != null
           && "myplaces".equals(layerDefinition.getLayerType())
       || layerDefinition.getLayerid().indexOf("myplaces") != -1;
 }