private boolean hasFilterTypeSupport(
     final IControlPanelProvider<ELEMENT_VALUE_TYPE> controlPanel, final IFilterType filterType) {
   if (controlPanel != null) {
     final IFilterSupport<Object> filterSupport = controlPanel.getFilterSupport();
     if (filterSupport != null) {
       for (final IFilterPanelProvider<?> filterPanel : filterSupport.getFilterPanels()) {
         if (NullCompatibleEquivalence.equals(filterType, filterPanel.getType())) {
           return true;
         }
       }
     }
   }
   return false;
 }
 @Override
 public List<IFilterType> getSupportedFilterTypes() {
   final Set<IFilterType> result = new LinkedHashSet<IFilterType>();
   for (final IControlPanelProvider<ELEMENT_VALUE_TYPE> controlPanelProvider : controlPanels) {
     final IFilterSupport<?> filterSupport = controlPanelProvider.getFilterSupport();
     if (filterSupport != null) {
       for (final IFilterPanelProvider<?> filterPanelProvider : filterSupport.getFilterPanels()) {
         final IFilterType filterType = filterPanelProvider.getType();
         result.add(filterType);
       }
     }
   }
   return new LinkedList<IFilterType>(result);
 }
 @Override
 public IFilterPanelProvider<IOperator> getFilterPanelProvider(final IFilterType filterType) {
   for (final IControlPanelProvider<ELEMENT_VALUE_TYPE> controlPanelProvider : controlPanels) {
     final IFilterSupport<Object> filterSupport = controlPanelProvider.getFilterSupport();
     if (filterSupport != null) {
       for (final IFilterPanelProvider<IOperator> filterPanelProvider :
           filterSupport.getFilterPanels()) {
         if (filterType.equals(filterPanelProvider.getType())) {
           return filterPanelProvider;
         }
       }
     }
   }
   return null;
 }