code: private Map<String, String> createMapFromValue(String value) {
  
          if (value == null) {
              return null;
          }
          List<String> entries = createListFromValue(value);
          Iterator<String> i = entries.iterator();
          Map<String, String> result = new HashMap<String, String>(entries.size());
          boolean rebuildDelimiters = false;
          if (value.indexOf(VALUE_MAP_DELIMITER_REPLACEMENT) != -1) {
              rebuildDelimiters = true;
          }
          while (i.hasNext()) {
              String entry = i.next();
              int index = entry.indexOf(VALUE_MAP_DELIMITER);
              if (index != -1) {
                  String key = entry.substring(0, index);
                  String val = "";
                  if ((index + 1) < entry.length()) {
                      val = entry.substring(index + 1);
                  }
                  if (CmsStringUtil.isNotEmpty(key)) {
                      if (rebuildDelimiters) {
                          key = rebuildDelimiter(key, VALUE_MAP_DELIMITER, VALUE_MAP_DELIMITER_REPLACEMENT);
                          val = rebuildDelimiter(val, VALUE_MAP_DELIMITER, VALUE_MAP_DELIMITER_REPLACEMENT);
                      }
                      result.put(key, val);
                  }
              }
          }
          return result;
      }
docs: Returns the map value representation for the given String.<p>
  
  The given value is split along the <code>|</code> char, the map keys and values are separated by a <code>=</code>.<p>
  
  @param value the value to create the map representation for
  
  @return the map value representation for the given String