private static TextAttributes mergeAttributes(TextAttributes primary, TextAttributes secondary) {
      if (primary == null) return secondary;
      if (secondary == null) return primary;
      TextAttributes result =
        new TextAttributes(primary.getForegroundColor() == null ? secondary.getForegroundColor() : primary.getForegroundColor(),
                           primary.getBackgroundColor() == null ? secondary.getBackgroundColor() : primary.getBackgroundColor(),
                           null, null,
                           primary.getFontType() == Font.PLAIN ? secondary.getFontType() : primary.getFontType());

      return TextAttributesEffectsBuilder.create(secondary).coverWith(primary).applyTo(result);
    }
private static TextAttributes mergeAttributes(TextAttributes primary, TextAttributes secondary)