@SuppressWarnings({"rawtypes", "unchecked"})
  private void adjustStyles(LayerDefinition layerDefinition, Map<String, ?> layerObj) {
    Object styles = layerObj.get("styles");

    if (styles == null) {
      /* no style */
    } else if (styles instanceof Map) {
      /* one style */
      Map<String, ?> styledef = (Map<String, ?>) styles;
      String name = (String) styledef.get("name");
      if (name == null) {
        return;
      }
      String title = (String) styledef.get("title");
      String legend = (String) styledef.get("legend");
      String sld = (String) styledef.get("styledLayerDescriptor");

      Style style = new LayerDefinition.Style();
      style.setName(name);
      style.setTitle(title);
      style.setLegend(legend);
      style.setSld(sld);
      style.setStyleMap((Map<String, ?>) styledef.get("styleMap"));

      layerDefinition.getStyles().put(name, style);

    } else if (styles instanceof List) {
      /*
       * N styles
       */
      List<Map<String, ?>> stylelist = (List) styles;
      for (Map<String, ?> styledef : stylelist) {

        String name = (String) styledef.get("name");
        if (name == null) {
          name = (String) styledef.get("identifier");
        }
        String title = (String) styledef.get("title");
        String legend = (String) styledef.get("legend");
        String sld = (String) styledef.get("styledLayerDescriptor");

        Style style = new LayerDefinition.Style();
        style.setName(name);
        style.setTitle(title);
        style.setLegend(legend);
        style.setSld(sld);
        style.setStyleMap((Map<String, ?>) styledef.get("styleMap"));

        layerDefinition.getStyles().put(name, style);
      }
    }
  }