TextAttributes (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); }