code: public static ProducerDecoratorBean filterProducersByDecoratorName(String decoratorName, List<ProducerAO> producers, Map<String, GraphDataBean> graphData) {
          ProducerDecoratorBean result = new ProducerDecoratorBean();
          result.setName(decoratorName);
  
          List<ProducerAO> decoratedProducers = new ArrayList<>();
          for (ProducerAO producer : producers) {
              IDecorator decorator = findOrCreateDecorator(producer);
              if (decorator.getName().equals(decoratorName)) {
                  result.setCaptions(decorator.getCaptions());
                  decoratedProducers.add(producer);
  
                  // Filling graph data
                  for (StatLineAO statLine : producer.getLines()) {
                      if (!"cumulated".equals(statLine.getStatName())) {
                          for (StatValueAO statValue : statLine.getValues()) {
                              final String graphKey = decorator.getName() + '_' + statValue.getName();
                              final GraphDataValueBean value = new GraphDataValueBean(producer.getProducerId() + '.' + statLine.getStatName(), statValue.getRawValue());
  
                              GraphDataBean graphDataBean = graphData.get(graphKey);
                              if (graphDataBean == null) {
                                  graphDataBean = new GraphDataBean(decorator.getName() + '_' + statValue.getJsVariableName(), statValue.getName());
                              }
  
                              graphDataBean.addValue(value);
                              graphData.put(graphKey, graphDataBean);
                          }
                      }
                  }
              }
          }
  
          result.setProducerBeans(decoratedProducers);
  
          return result;
      }
docs: Filters producers by decorator and returns it.
  @param decoratorName Decorator name
  @param producers {@link List} of {@link ProducerAO} to filter
  @param graphData Graph data