docs: public static List<CmsSelectWidgetOption> parseOptions(String input) {
  
          if (CmsStringUtil.isEmptyOrWhitespaceOnly(input)) {
              // default result for empty input
              return Collections.emptyList();
          }
  
          // cut along the delimiter
          String[] parts = splitOptions(input);
          List<CmsSelectWidgetOption> result = new ArrayList<CmsSelectWidgetOption>(parts.length);
  
          // indicates if a default of 'true' was already set in this result list
          boolean foundDefault = false;
  
          for (int i = 0; i < parts.length; i++) {
  
              String part = parts[i].trim();
              if (part.length() == 0) {
                  // skip empty parts
                  continue;
              }
  
              try {
                  part = part.replace("\\|", "|");
                  String value = null;
                  String option = null;
                  String help = null;
                  boolean isDefault = false;
  
                  int posValue = part.indexOf(KEY_VALUE);
                  int posDefault = part.indexOf(KEY_DEFAULT);
                  int posOption = part.indexOf(KEY_OPTION);
                  int posHelp = part.indexOf(KEY_HELP);
  
                  boolean shortValue = false;
                  if (posValue < 0) {
                      // shortcut syntax, value key must be at first position
                      if ((posDefault == 0) || (posOption == 0) || (posHelp == 0)) {
                          // malformed part - no value given
                          throw new CmsWidgetException(
                              Messages.get().container(Messages.ERR_MALFORMED_SELECT_OPTIONS_1, input));
                      }
                      posValue = 0;
                      shortValue = true;
                  }
  
                  // a 'value' must be always present
                  int end = part.length();
                  // check where the 'value' ends
                  if (posHelp > posValue) {
                      end = posHelp;
                  }
                  if ((posDefault > posValue) && (posDefault < end)) {
                      end = posDefault;
                  }
                  if ((posOption > posValue) && (posOption < end)) {
                      end = posOption;
                  }
                  if (shortValue) {
                      // no explicit setting using the key, value must be at the first position
                      value = part.substring(0, end).trim();
                  } else {
                      value = part.substring((posValue + KEY_VALUE.length()) - 1, end).trim();
                      // cut of trailing '
                      value = value.substring(1, value.length() - 1);
                  }
  
                  boolean shortOption = false;
                  // check if the option is appended using the ':' shortcut
                  if ((shortValue) && (posOption < 0)) {
                      int pos = value.indexOf(OPTION_DELIMITER);
                      if (pos >= 0) {
                          // shortcut syntax is used
                          posOption = pos;
                          shortOption = true;
                          value = value.substring(0, pos);
                      }
                  }
  
                  if (posDefault >= 0) {
                      // there was an explicit 'default' setting using the key, check where it ends
                      end = part.length();
                      if (posHelp > posDefault) {
                          end = posHelp;
                      }
                      if ((posOption > posDefault) && (posOption < end)) {
                          end = posOption;
                      }
                      if ((posValue > posDefault) && (posValue < end)) {
                          end = posValue;
                      }
                      String sub = part.substring(posDefault + KEY_DEFAULT.length(), end).trim();
                      // cut of trailing '
                      sub = sub.substring(0, sub.length() - 1);
                      isDefault = Boolean.valueOf(sub).booleanValue();
                  } else {
                      // check for shortcut syntax, value must end with a '*'
                      if ((value != null) && (value.charAt(value.length() - 1) == DEFAULT_MARKER)) {
                          isDefault = true;
                          value = value.substring(0, value.length() - 1);
                      }
                  }
  
                  if (posOption >= 0) {
                      // an 'option' setting is available, check where it ends
                      end = part.length();
                      if (posHelp > posOption) {
                          end = posHelp;
                      }
                      if ((posDefault > posOption) && (posDefault < end)) {
                          end = posDefault;
                      }
                      if ((posValue > posOption) && (posValue < end)) {
                          end = posValue;
                      }
                      if (shortOption) {
                          // shortcut syntax used for option with ':' appended to value
                          option = part.substring(posOption + 1, end).trim();
                      } else {
                          option = part.substring((posOption + KEY_OPTION.length()) - 1, end).trim();
                          // cut of trailing '
                          option = option.substring(1, option.length() - 1);
                      }
                  }
  
                  if (posHelp >= 0) {
                      // a 'help' setting is available, check where it ends
                      end = part.length();
                      if (posOption > posHelp) {
                          end = posOption;
                      }
                      if ((posDefault > posHelp) && (posDefault < end)) {
                          end = posDefault;
                      }
                      if ((posValue > posHelp) && (posValue < end)) {
                          end = posValue;
                      }
                      help = part.substring((posHelp + KEY_HELP.length()) - 1, end).trim();
                      // cut of trailing '
                      help = help.substring(1, help.length() - 1);
                  }
  
                  // check if there was already a 'true' default, if so all other entries are 'false'
                  if (foundDefault) {
                      isDefault = false;
                  } else if (isDefault) {
                      foundDefault = true;
                  }
  
                  result.add(new CmsSelectWidgetOption(value, isDefault, option, help));
  
              } catch (Exception e) {
                  if (LOG.isInfoEnabled()) {
                      LOG.info(Messages.get().getBundle().key(Messages.ERR_MALFORMED_SELECT_OPTIONS_1, input));
                  }
              }
          }
  
          return result;
      }