docs: public void applyStyleToElement(Style style, JRDesignElement designElemen) {
          if (style == null) {
  //			log.warn("NULL style passed to object");
              JRDesignStyle style_ = new JRDesignStyle();
              style_.setName(createUniqueStyleName());
              designElemen.setStyle(style_);
              try {
                  getDesign().addStyle(style_);
              } catch (JRException e) {
                  //duplicated style, its ok
              }
  //			return null;
              return;
          }
          boolean existsInDesign = style.getName() != null
                  && design.getStylesMap().get(style.getName()) != null;
          //		&& !style.isOverridesExistingStyle();
  
          JRDesignStyle jrstyle;
          //Let's allways add a new JR style
          if (existsInDesign && !style.isOverridesExistingStyle()) {
              jrstyle = (JRDesignStyle) design.getStylesMap().get(style.getName());
          } else {
              addStyleToDesign(style); //Order maters. This line fist
              jrstyle = style.transform();
          }
  
          designElemen.setStyle(jrstyle);
          if (designElemen instanceof JRDesignTextElement) {
              JRDesignTextElement textField = (JRDesignTextElement) designElemen;
              if (style.getStreching() != null)
                  textField.setStretchType(StretchTypeEnum.getByValue(style.getStreching().getValue()));
              textField.setPositionType(PositionTypeEnum.FLOAT);
  
          }
          if (designElemen instanceof JRDesignTextField) {
              JRDesignTextField textField = (JRDesignTextField) designElemen;
              textField.setStretchWithOverflow(style.isStretchWithOverflow());
  
              if (!textField.isBlankWhenNull() && style.isBlankWhenNull()) //TODO Re check if this condition is ok
                  textField.setBlankWhenNull(true);
          }
  
          if (designElemen instanceof JRDesignGraphicElement) {
              JRDesignGraphicElement graphicElement = (JRDesignGraphicElement) designElemen;
              graphicElement.setStretchType(StretchTypeEnum.getByValue(style.getStreching().getValue()));
              graphicElement.setPositionType(PositionTypeEnum.FLOAT);
          }
      }