code: public void update(CmsEntity entity) {
  
          String filterType = NO_FILTER;
          if (m_matchTypes) {
              List<Object> values = CmsEntity.getValuesForPath(entity, m_valuePath);
              if (values.size() > 1) {
                  String firstValue = (String)values.get(0);
                  CmsPair<String, String> val = m_options.get(firstValue);
                  if (val != null) {
                      filterType = val.getSecond();
                  }
              }
          }
  
          if (!filterType.equals(m_filterType)) {
              boolean noFilter = NO_FILTER.equals(filterType);
              Map<String, String> items = new LinkedHashMap<String, String>();
              // add empty option
              items.put("", m_emptyLabel);
              for (Entry<String, CmsPair<String, String>> optEntry : m_options.entrySet()) {
                  if (noFilter || filterType.equals(optEntry.getValue().getSecond())) {
                      items.put(optEntry.getKey(), optEntry.getValue().getFirst());
                  }
              }
              replaceItems(items);
          }
          m_filterType = filterType;
      }
docs: Updates the select options from the given entity.<p>
  
  @param entity a top-level content entity