@Override @Nonnull public String getPlainText () { if (!hasChildren ()) return ""; final StringBuilder ret = new StringBuilder (); for (final CHILDTYPE aChild : getChildrenFormEmitting (m_aChildren)) { final String sPlainText = aChild.getPlainText (); if (StringHelper.hasText (sPlainText)) { if (ret.length () > 0) ret.append (' '); ret.append (sPlainText); } } return ret.toString (); }
@Override @OverrideOnDemand @OverridingMethodsMustInvokeSuper protected void fillMicroElement (final IMicroElement aElement, final IHCConversionSettingsToNode aConversionSettings) { super.fillMicroElement (aElement, aConversionSettings); if (hasChildren ()) for (final CHILDTYPE aChild : getChildrenFormEmitting (m_aChildren)) aElement.appendChild (aChild.convertToMicroNode (aConversionSettings)); if (!aElement.hasChildren ()) { // If no children are present, add an empty text node so that an opening // and a closing tag are written separately // Note: just using "hasChildren" is not enough, in case a child is // present, that is not rendered! if (!getElement ().mayBeSelfClosed ()) aElement.appendText (""); } }