@CheckForNull
  public String getDecoratedSourceAsHtml(@Nullable String sourceLine, @Nullable String highlighting, @Nullable String symbols) {
    if (sourceLine == null) {
      return null;
    }
    DecorationDataHolder decorationDataHolder = new DecorationDataHolder();
    if (StringUtils.isNotBlank(highlighting)) {
      decorationDataHolder.loadSyntaxHighlightingData(highlighting);
    }
    if (StringUtils.isNotBlank(symbols)) {
      decorationDataHolder.loadLineSymbolReferences(symbols);
    }
    HtmlTextDecorator textDecorator = new HtmlTextDecorator();
    List<String> decoratedSource = textDecorator.decorateTextWithHtml(sourceLine, decorationDataHolder, 1, 1);
    if (decoratedSource == null) {
      return null;
    } else {
      if (decoratedSource.isEmpty()) {
        return "";
      } else {
        return decoratedSource.get(0);
      }
    }
  }
@Test
  public void should_ignore_missing_highlighting() {
    String sourceLine = "    if (toto < 42) {";
    assertThat(sourceDecorator.getDecoratedSourceAsHtml(sourceLine, null, null)).isEqualTo("    if (toto &lt; 42) {");
    assertThat(sourceDecorator.getDecoratedSourceAsHtml(sourceLine, "", null)).isEqualTo("    if (toto &lt; 42) {");
  }