The following document contains the results of PMD's CPD 5.6.1.
File | Line |
---|---|
org\apache\maven\doxia\sink\impl\Xhtml5BaseSink.java | 1184 |
org\apache\maven\doxia\sink\impl\XhtmlBaseSink.java | 1061 |
} /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#ADDRESS */ @Override public void address() { address( null ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#ADDRESS */ @Override public void address( SinkEventAttributes attributes ) { MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_SECTION_ATTRIBUTES ); writeStartTag( HtmlMarkup.ADDRESS, atts ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#ADDRESS */ @Override public void address_() { writeEndTag( HtmlMarkup.ADDRESS ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#BLOCKQUOTE */ @Override public void blockquote() { blockquote( null ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#BLOCKQUOTE */ @Override public void blockquote( SinkEventAttributes attributes ) { MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_SECTION_ATTRIBUTES ); writeStartTag( HtmlMarkup.BLOCKQUOTE, atts ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#BLOCKQUOTE */ @Override public void blockquote_() { writeEndTag( HtmlMarkup.BLOCKQUOTE ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DIV */ @Override public void division() { division( null ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DIV */ @Override public void division( SinkEventAttributes attributes ) { MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_SECTION_ATTRIBUTES ); writeStartTag( HtmlMarkup.DIV, atts ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DIV */ @Override public void division_() { writeEndTag( HtmlMarkup.DIV ); } /** * The default class style for boxed is <code>source</code>. * * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DIV * @see javax.swing.text.html.HTML.Tag#PRE */ @Override public void verbatim( SinkEventAttributes attributes ) { if ( paragraphFlag ) { // The content of element type "p" must match // "(a|br|span|bdo|object|applet|img|map|iframe|tt|i|b|u|s|strike|big|small|font|basefont|em|strong| // dfn|code|q|samp|kbd|var|cite|abbr|acronym|sub|sup|input|select|textarea|label|button|ins|del|script)". paragraph_(); } verbatimFlag = true; MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_VERBATIM_ATTRIBUTES ); if ( atts == null ) { atts = new SinkEventAttributeSet(); } boolean boxed = false; if ( atts.isDefined( SinkEventAttributes.DECORATION ) ) { boxed = "boxed".equals( atts.getAttribute( SinkEventAttributes.DECORATION ).toString() ); } SinkEventAttributes divAtts = null; if ( boxed ) { divAtts = new SinkEventAttributeSet( Attribute.CLASS.toString(), "source" ); } atts.removeAttribute( SinkEventAttributes.DECORATION ); writeStartTag( HtmlMarkup.DIV, divAtts ); writeStartTag( HtmlMarkup.PRE, atts ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DIV * @see javax.swing.text.html.HTML.Tag#PRE */ @Override public void verbatim_() { writeEndTag( HtmlMarkup.PRE ); writeEndTag( HtmlMarkup.DIV ); verbatimFlag = false; } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#HR */ @Override public void horizontalRule() { horizontalRule( null ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#HR */ @Override public void horizontalRule( SinkEventAttributes attributes ) { MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_HR_ATTRIBUTES ); writeSimpleTag( HtmlMarkup.HR, atts ); } /** {@inheritDoc} */ @Override public void table() { // start table with tableRows table( null ); } /** {@inheritDoc} */ @Override public void table( SinkEventAttributes attributes ) { this.tableContentWriterStack.addLast( new StringWriter() ); this.tableRows = false; if ( paragraphFlag ) { // The content of element type "p" must match // "(a|br|span|bdo|object|applet|img|map|iframe|tt|i|b|u|s|strike|big|small|font|basefont|em|strong| // dfn|code|q|samp|kbd|var|cite|abbr|acronym|sub|sup|input|select|textarea|label|button|ins|del|script)". paragraph_(); } // start table with tableRows if ( attributes == null ) { this.tableAttributes = new SinkEventAttributeSet( 0 ); } else { this.tableAttributes = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_TABLE_ATTRIBUTES ); } } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#TABLE */ @Override public void table_() { this.tableRows = false; writeEndTag( HtmlMarkup.TABLE ); if ( !this.cellCountStack.isEmpty() ) { this.cellCountStack.removeLast().toString(); } if ( this.tableContentWriterStack.isEmpty() ) { LOGGER.warn( "No table content" ); return; } String tableContent = this.tableContentWriterStack.removeLast().toString(); String tableCaption = null; if ( !this.tableCaptionStack.isEmpty() && this.tableCaptionStack.getLast() != null ) { tableCaption = this.tableCaptionStack.removeLast(); } if ( tableCaption != null ) { // DOXIA-177 StringBuilder sb = new StringBuilder(); sb.append( tableContent, 0, tableContent.indexOf( Markup.GREATER_THAN ) + 1 ); sb.append( tableCaption ); sb.append( tableContent.substring( tableContent.indexOf( Markup.GREATER_THAN ) + 1 ) ); write( sb.toString() ); } else { write( tableContent ); } } /** * The default class style is <code>bodyTable</code>. * The default align is <code>center</code>. * * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#TABLE */ @Override public void tableRows( int[] justification, boolean grid ) { this.tableRows = true; setCellJustif( justification ); if ( this.tableAttributes == null ) { this.tableAttributes = new SinkEventAttributeSet( 0 ); } MutableAttributeSet att = new SinkEventAttributeSet(); if ( !this.tableAttributes.isDefined( Attribute.BORDER.toString() ) ) { att.addAttribute( Attribute.BORDER, ( grid ? "1" : "0" ) ); } if ( !this.tableAttributes.isDefined( Attribute.CLASS.toString() ) ) { att.addAttribute( Attribute.CLASS, "bodyTable" ); } att.addAttributes( this.tableAttributes ); this.tableAttributes.removeAttributes( this.tableAttributes ); writeStartTag( HtmlMarkup.TABLE, att ); this.cellCountStack.addLast( 0 ); } /** {@inheritDoc} */ @Override public void tableRows_() { this.tableRows = false; if ( !this.cellJustifStack.isEmpty() ) { this.cellJustifStack.removeLast(); } if ( !this.isCellJustifStack.isEmpty() ) { this.isCellJustifStack.removeLast(); } this.evenTableRow = true; } /** * The default class style is <code>a</code> or <code>b</code> depending the row id. * * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#TR */ @Override public void tableRow() { // To be backward compatible if ( !this.tableRows ) { tableRows( null, false ); } tableRow( null ); } /** * The default class style is <code>a</code> or <code>b</code> depending the row id. * * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#TR */ @Override public void tableRow( SinkEventAttributes attributes ) { MutableAttributeSet att = new SinkEventAttributeSet(); if ( evenTableRow ) { att.addAttribute( Attribute.CLASS, "a" ); } else { att.addAttribute( Attribute.CLASS, "b" ); } att.addAttributes( SinkUtils.filterAttributes( attributes, SinkUtils.SINK_TR_ATTRIBUTES ) ); writeStartTag( HtmlMarkup.TR, att ); evenTableRow = !evenTableRow; if ( !this.cellCountStack.isEmpty() ) { this.cellCountStack.removeLast(); this.cellCountStack.addLast( 0 ); } } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#TR */ @Override public void tableRow_() { writeEndTag( HtmlMarkup.TR ); } /** {@inheritDoc} */ @Override public void tableCell() { tableCell( (SinkEventAttributeSet) null ); } /** {@inheritDoc} */ @Override public void tableHeaderCell() { tableHeaderCell( (SinkEventAttributeSet) null ); } /** {@inheritDoc} */ @Override public void tableCell( SinkEventAttributes attributes ) { tableCell( false, attributes ); } /** {@inheritDoc} */ @Override public void tableHeaderCell( SinkEventAttributes attributes ) { tableCell( true, attributes ); } /** * @param headerRow true if it is an header row * @param attributes the cell attributes * @see javax.swing.text.html.HTML.Tag#TH * @see javax.swing.text.html.HTML.Tag#TD */ private void tableCell( boolean headerRow, MutableAttributeSet attributes ) { Tag t = ( headerRow ? HtmlMarkup.TH : HtmlMarkup.TD ); if ( !headerRow && cellCountStack != null && !cellCountStack.isEmpty() && cellJustifStack != null && !cellJustifStack.isEmpty() && getCellJustif() != null ) { int cellCount = getCellCount(); if ( cellCount < getCellJustif().length ) { Map<Integer, MutableAttributeSet> hash = new HashMap<>(); hash.put( Sink.JUSTIFY_CENTER, SinkEventAttributeSet.CENTER ); hash.put( Sink.JUSTIFY_LEFT, SinkEventAttributeSet.LEFT ); hash.put( Sink.JUSTIFY_RIGHT, SinkEventAttributeSet.RIGHT ); MutableAttributeSet atts = hash.get( getCellJustif()[cellCount] ); if ( attributes == null ) { attributes = new SinkEventAttributeSet(); } if ( atts != null ) { attributes.addAttributes( atts ); } } } if ( attributes == null ) { writeStartTag( t, null ); } else { writeStartTag( t, SinkUtils.filterAttributes( attributes, SinkUtils.SINK_TD_ATTRIBUTES ) ); } } /** {@inheritDoc} */ @Override public void tableCell_() { tableCell_( false ); } /** {@inheritDoc} */ @Override public void tableHeaderCell_() { tableCell_( true ); } /** * Ends a table cell. * * @param headerRow true if it is an header row * @see javax.swing.text.html.HTML.Tag#TH * @see javax.swing.text.html.HTML.Tag#TD */ private void tableCell_( boolean headerRow ) { Tag t = ( headerRow ? HtmlMarkup.TH : HtmlMarkup.TD ); writeEndTag( t ); if ( !this.isCellJustifStack.isEmpty() && this.isCellJustifStack.getLast().equals( Boolean.TRUE ) && !this.cellCountStack.isEmpty() ) { int cellCount = Integer.parseInt( this.cellCountStack.removeLast().toString() ); this.cellCountStack.addLast( ++cellCount ); } } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#CAPTION */ @Override public void tableCaption() { tableCaption( null ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#CAPTION */ @Override public void tableCaption( SinkEventAttributes attributes ) { StringWriter sw = new StringWriter(); this.tableCaptionWriterStack.addLast( sw ); this.tableCaptionXMLWriterStack.addLast( new PrettyPrintXMLWriter( sw ) ); // TODO: tableCaption should be written before tableRows (DOXIA-177) MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_SECTION_ATTRIBUTES ); writeStartTag( HtmlMarkup.CAPTION, atts ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#CAPTION */ @Override public void tableCaption_() { writeEndTag( HtmlMarkup.CAPTION ); if ( !this.tableCaptionXMLWriterStack.isEmpty() && this.tableCaptionXMLWriterStack.getLast() != null ) { this.tableCaptionStack.addLast( this.tableCaptionWriterStack.removeLast().toString() ); this.tableCaptionXMLWriterStack.removeLast(); } } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#A */ @Override public void anchor( String name ) { anchor( name, null ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#A */ @Override public void anchor( String name, SinkEventAttributes attributes ) { if ( name == null ) { throw new NullPointerException( "Anchor name cannot be null!" ); } if ( headFlag ) { return; } MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_BASE_ATTRIBUTES ); String id = name; if ( !DoxiaUtils.isValidId( id ) ) { id = DoxiaUtils.encodeId( name, true ); LOGGER.debug( "Modified invalid anchor name '{}' to '{}'", name, id ); } MutableAttributeSet att = new SinkEventAttributeSet(); att.addAttribute( Attribute.NAME, id ); att.addAttributes( atts ); writeStartTag( HtmlMarkup.A, att ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#A */ @Override public void anchor_() { if ( !headFlag ) { writeEndTag( HtmlMarkup.A ); } } /** {@inheritDoc} */ @Override public void link( String name ) { link( name, null ); } /** {@inheritDoc} */ @Override public void link( String name, SinkEventAttributes attributes ) { if ( attributes == null ) { link( name, null, null ); } else { String target = (String) attributes.getAttribute( Attribute.TARGET.toString() ); MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_LINK_ATTRIBUTES ); link( name, target, atts ); } } /** * Adds a link with an optional target. * The default style class for external link is <code>externalLink</code>. * * @param href the link href. * @param target the link target, may be null. * @param attributes an AttributeSet, may be null. * This is supposed to be filtered already. * @see javax.swing.text.html.HTML.Tag#A */ private void link( String href, String target, MutableAttributeSet attributes ) { if ( href == null ) { throw new NullPointerException( "Link name cannot be null!" ); } if ( headFlag ) { return; } MutableAttributeSet att = new SinkEventAttributeSet(); if ( DoxiaUtils.isExternalLink( href ) ) { att.addAttribute( Attribute.CLASS, "externalLink" ); } att.addAttribute( Attribute.HREF, HtmlTools.escapeHTML( href ) ); if ( target != null ) { att.addAttribute( Attribute.TARGET, target ); } if ( attributes != null ) { attributes.removeAttribute( Attribute.HREF.toString() ); attributes.removeAttribute( Attribute.TARGET.toString() ); att.addAttributes( attributes ); } writeStartTag( HtmlMarkup.A, att ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#A */ @Override public void link_() { if ( !headFlag ) { writeEndTag( HtmlMarkup.A ); } } /** {@inheritDoc} */ @Override public void inline() { inline( null ); } private void inlineSemantics( SinkEventAttributes attributes, String semantic, List<Tag> tags, Tag tag ) { if ( attributes.containsAttribute( SinkEventAttributes.SEMANTICS, semantic ) ) { SinkEventAttributes attributesNoSemantics = ( SinkEventAttributes ) attributes.copyAttributes(); attributesNoSemantics.removeAttribute( SinkEventAttributes.SEMANTICS ); writeStartTag( tag, attributesNoSemantics ); tags.add( 0, tag ); } } /** {@inheritDoc} */ @Override public void inline( SinkEventAttributes attributes ) { if ( !headFlag ) { List<Tag> tags = new ArrayList<>(); if ( attributes != null ) { inlineSemantics( attributes, "emphasis", tags, HtmlMarkup.EM ); inlineSemantics( attributes, "strong", tags, HtmlMarkup.STRONG ); inlineSemantics( attributes, "small", tags, HtmlMarkup.SMALL ); inlineSemantics( attributes, "line-through", tags, HtmlMarkup.S ); inlineSemantics( attributes, "citation", tags, HtmlMarkup.CITE ); inlineSemantics( attributes, "quote", tags, HtmlMarkup.Q ); inlineSemantics( attributes, "definition", tags, HtmlMarkup.DFN ); inlineSemantics( attributes, "abbreviation", tags, HtmlMarkup.ABBR ); inlineSemantics( attributes, "italic", tags, HtmlMarkup.I ); inlineSemantics( attributes, "bold", tags, HtmlMarkup.B ); inlineSemantics( attributes, "code", tags, HtmlMarkup.CODE ); |
File | Line |
---|---|
org\apache\maven\doxia\sink\impl\Xhtml5BaseSink.java | 2045 |
org\apache\maven\doxia\sink\impl\XhtmlBaseSink.java | 1896 |
writeSimpleTag( HtmlMarkup.WBR, atts ); } } /** {@inheritDoc} */ @Override public void pageBreak() { comment( " PB " ); } /** {@inheritDoc} */ @Override public void nonBreakingSpace() { if ( headFlag ) { getTextBuffer().append( ' ' ); } else { write( " " ); } } /** {@inheritDoc} */ @Override public void text( String text ) { if ( headFlag ) { getTextBuffer().append( text ); } else if ( verbatimFlag ) { verbatimContent( text ); } else { content( text ); } } /** {@inheritDoc} */ @Override public void text( String text, SinkEventAttributes attributes ) { text( text ); } /** {@inheritDoc} */ @Override public void rawText( String text ) { if ( headFlag ) { getTextBuffer().append( text ); } else { write( text ); } } /** {@inheritDoc} */ @Override public void comment( String comment ) { if ( comment != null ) { final String originalComment = comment; // http://www.w3.org/TR/2000/REC-xml-20001006#sec-comments while ( comment.contains( "--" ) ) { comment = comment.replace( "--", "- -" ); } if ( comment.endsWith( "-" ) ) { comment += " "; } if ( !originalComment.equals( comment ) ) { LOGGER.warn( "Modified invalid comment '{}' to '{}'", originalComment, comment ); } final StringBuilder buffer = new StringBuilder( comment.length() + 7 ); buffer.append( LESS_THAN ).append( BANG ).append( MINUS ).append( MINUS ); buffer.append( comment ); buffer.append( MINUS ).append( MINUS ).append( GREATER_THAN ); write( buffer.toString() ); } } /** * {@inheritDoc} * * Add an unknown event. * This can be used to generate html tags for which no corresponding sink event exists. * * <p> * If {@link org.apache.maven.doxia.util.HtmlTools#getHtmlTag(String) HtmlTools.getHtmlTag( name )} * does not return null, the corresponding tag will be written. * </p> * * <p>For example, the div block</p> * * <pre> * <div class="detail" style="display:inline">text</div> * </pre> * * <p>can be generated via the following event sequence:</p> * * <pre> * SinkEventAttributeSet atts = new SinkEventAttributeSet(); * atts.addAttribute( SinkEventAttributes.CLASS, "detail" ); * atts.addAttribute( SinkEventAttributes.STYLE, "display:inline" ); * sink.unknown( "div", new Object[]{new Integer( HtmlMarkup.TAG_TYPE_START )}, atts ); * sink.text( "text" ); * sink.unknown( "div", new Object[]{new Integer( HtmlMarkup.TAG_TYPE_END )}, null ); * </pre> * * @param name the name of the event. If this is not a valid xhtml tag name * as defined in {@link org.apache.maven.doxia.markup.HtmlMarkup} then the event is ignored. * @param requiredParams If this is null or the first argument is not an Integer then the event is ignored. * The first argument should indicate the type of the unknown event, its integer value should be one of * {@link org.apache.maven.doxia.markup.HtmlMarkup#TAG_TYPE_START TAG_TYPE_START}, * {@link org.apache.maven.doxia.markup.HtmlMarkup#TAG_TYPE_END TAG_TYPE_END}, * {@link org.apache.maven.doxia.markup.HtmlMarkup#TAG_TYPE_SIMPLE TAG_TYPE_SIMPLE}, * {@link org.apache.maven.doxia.markup.HtmlMarkup#ENTITY_TYPE ENTITY_TYPE}, or * {@link org.apache.maven.doxia.markup.HtmlMarkup#CDATA_TYPE CDATA_TYPE}, * otherwise the event will be ignored. * @param attributes a set of attributes for the event. May be null. * The attributes will always be written, no validity check is performed. */ @Override public void unknown( String name, Object[] requiredParams, SinkEventAttributes attributes ) { if ( requiredParams == null || !( requiredParams[0] instanceof Integer ) ) { LOGGER.warn( "No type information for unknown event '{}', ignoring!", name ); return; } int tagType = (Integer) requiredParams[0]; if ( tagType == ENTITY_TYPE ) { rawText( name ); return; } if ( tagType == CDATA_TYPE ) { rawText( EOL + "//<![CDATA[" + requiredParams[1] + "]]>" + EOL ); return; } Tag tag = HtmlTools.getHtmlTag( name ); if ( tag == null ) { LOGGER.warn( "No HTML tag found for unknown event '{}', ignoring!", name ); } else { if ( tagType == TAG_TYPE_SIMPLE ) { writeSimpleTag( tag, escapeAttributeValues( attributes ) ); } else if ( tagType == TAG_TYPE_START ) { writeStartTag( tag, escapeAttributeValues( attributes ) ); } else if ( tagType == TAG_TYPE_END ) { writeEndTag( tag ); } else { LOGGER.warn( "No type information for unknown event '{}', ignoring!", name ); } } } private SinkEventAttributes escapeAttributeValues( SinkEventAttributes attributes ) { SinkEventAttributeSet set = new SinkEventAttributeSet( attributes.getAttributeCount() ); Enumeration<?> names = attributes.getAttributeNames(); while ( names.hasMoreElements() ) { Object name = names.nextElement(); set.addAttribute( name, escapeHTML( attributes.getAttribute( name ).toString() ) ); } return set; } /** {@inheritDoc} */ @Override public void flush() { writer.flush(); } /** {@inheritDoc} */ @Override public void close() { writer.close(); init(); } // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- /** * Write HTML escaped text to output. * * @param text The text to write. */ protected void content( String text ) { // small hack due to DOXIA-314 String txt = escapeHTML( text ); txt = StringUtils.replace( txt, "&#", "&#" ); write( txt ); } /** * Write HTML escaped text to output. * * @param text The text to write. */ protected void verbatimContent( String text ) { write( escapeHTML( text ) ); } /** * Forward to HtmlTools.escapeHTML( text ). * * @param text the String to escape, may be null * @return the text escaped, "" if null String input * @see org.apache.maven.doxia.util.HtmlTools#escapeHTML(String) */ protected static String escapeHTML( String text ) { return HtmlTools.escapeHTML( text, false ); } /** * Forward to HtmlTools.encodeURL( text ). * * @param text the String to encode, may be null. * @return the text encoded, null if null String input. * @see org.apache.maven.doxia.util.HtmlTools#encodeURL(String) */ protected static String encodeURL( String text ) { return HtmlTools.encodeURL( text ); } /** {@inheritDoc} */ protected void write( String text ) { if ( !this.tableCaptionXMLWriterStack.isEmpty() && this.tableCaptionXMLWriterStack.getLast() != null ) { this.tableCaptionXMLWriterStack.getLast().writeMarkup( unifyEOLs( text ) ); } else if ( !this.tableContentWriterStack.isEmpty() && this.tableContentWriterStack.getLast() != null ) { this.tableContentWriterStack.getLast().write( unifyEOLs( text ) ); } else { writer.write( unifyEOLs( text ) ); } } /** {@inheritDoc} */ @Override protected void writeStartTag( Tag t, MutableAttributeSet att, boolean isSimpleTag ) { if ( this.tableCaptionXMLWriterStack.isEmpty() ) { super.writeStartTag ( t, att, isSimpleTag ); } else { String tag = ( getNameSpace() != null ? getNameSpace() + ":" : "" ) + t.toString(); this.tableCaptionXMLWriterStack.getLast().startElement( tag ); if ( att != null ) { Enumeration<?> names = att.getAttributeNames(); while ( names.hasMoreElements() ) { Object key = names.nextElement(); Object value = att.getAttribute( key ); this.tableCaptionXMLWriterStack.getLast().addAttribute( key.toString(), value.toString() ); } } if ( isSimpleTag ) { this.tableCaptionXMLWriterStack.getLast().endElement(); } } } /** {@inheritDoc} */ @Override protected void writeEndTag( Tag t ) { if ( this.tableCaptionXMLWriterStack.isEmpty() ) { super.writeEndTag( t ); } else { this.tableCaptionXMLWriterStack.getLast().endElement(); } } } |
File | Line |
---|---|
org\apache\maven\doxia\sink\impl\Xhtml5BaseSink.java | 719 |
org\apache\maven\doxia\sink\impl\XhtmlBaseSink.java | 569 |
} // ----------------------------------------------------------------------- // // ----------------------------------------------------------------------- /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#UL */ @Override public void list() { list( null ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#UL */ @Override public void list( SinkEventAttributes attributes ) { if ( paragraphFlag ) { // The content of element type "p" must match // "(a|br|span|bdo|object|applet|img|map|iframe|tt|i|b|u|s|strike|big|small|font|basefont|em|strong| // dfn|code|q|samp|kbd|var|cite|abbr|acronym|sub|sup|input|select|textarea|label|button|ins|del|script)". paragraph_(); } MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_BASE_ATTRIBUTES ); writeStartTag( HtmlMarkup.UL, atts ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#UL */ @Override public void list_() { writeEndTag( HtmlMarkup.UL ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#LI */ @Override public void listItem() { listItem( null ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#LI */ @Override public void listItem( SinkEventAttributes attributes ) { MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_BASE_ATTRIBUTES ); writeStartTag( HtmlMarkup.LI, atts ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#LI */ @Override public void listItem_() { writeEndTag( HtmlMarkup.LI ); } /** * The default list style depends on the numbering. * * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#OL */ @Override public void numberedList( int numbering ) { numberedList( numbering, null ); } /** * The default list style depends on the numbering. * * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#OL */ @Override public void numberedList( int numbering, SinkEventAttributes attributes ) { if ( paragraphFlag ) { // The content of element type "p" must match // "(a|br|span|bdo|object|applet|img|map|iframe|tt|i|b|u|s|strike|big|small|font|basefont|em|strong| // dfn|code|q|samp|kbd|var|cite|abbr|acronym|sub|sup|input|select|textarea|label|button|ins|del|script)". paragraph_(); } String style; switch ( numbering ) { case NUMBERING_UPPER_ALPHA: style = "upper-alpha"; break; case NUMBERING_LOWER_ALPHA: style = "lower-alpha"; break; case NUMBERING_UPPER_ROMAN: style = "upper-roman"; break; case NUMBERING_LOWER_ROMAN: style = "lower-roman"; break; case NUMBERING_DECIMAL: default: style = "decimal"; } MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_SECTION_ATTRIBUTES ); if ( atts == null ) { atts = new SinkEventAttributeSet( 1 ); } atts.addAttribute( Attribute.STYLE, "list-style-type: " + style ); writeStartTag( HtmlMarkup.OL, atts ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#OL */ @Override public void numberedList_() { writeEndTag( HtmlMarkup.OL ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#LI */ @Override public void numberedListItem() { numberedListItem( null ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#LI */ @Override public void numberedListItem( SinkEventAttributes attributes ) { MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_BASE_ATTRIBUTES ); writeStartTag( HtmlMarkup.LI, atts ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#LI */ @Override public void numberedListItem_() { writeEndTag( HtmlMarkup.LI ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DL */ @Override public void definitionList() { definitionList( null ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DL */ @Override public void definitionList( SinkEventAttributes attributes ) { if ( paragraphFlag ) { // The content of element type "p" must match // "(a|br|span|bdo|object|applet|img|map|iframe|tt|i|b|u|s|strike|big|small|font|basefont|em|strong| // dfn|code|q|samp|kbd|var|cite|abbr|acronym|sub|sup|input|select|textarea|label|button|ins|del|script)". paragraph_(); } MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_BASE_ATTRIBUTES ); writeStartTag( HtmlMarkup.DL, atts ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DL */ @Override public void definitionList_() { writeEndTag( HtmlMarkup.DL ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DT */ @Override public void definedTerm( SinkEventAttributes attributes ) { MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_BASE_ATTRIBUTES ); writeStartTag( HtmlMarkup.DT, atts ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DT */ @Override public void definedTerm() { definedTerm( null ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DT */ @Override public void definedTerm_() { writeEndTag( HtmlMarkup.DT ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DD */ @Override public void definition() { definition( null ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DD */ @Override public void definition( SinkEventAttributes attributes ) { MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_BASE_ATTRIBUTES ); writeStartTag( HtmlMarkup.DD, atts ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#DD */ @Override public void definition_() { writeEndTag( HtmlMarkup.DD ); } /** {@inheritDoc} */ @Override public void figure() { |
File | Line |
---|---|
org\apache\maven\doxia\sink\impl\Xhtml5BaseSink.java | 350 |
org\apache\maven\doxia\sink\impl\XhtmlBaseSink.java | 289 |
writeEndTag( HtmlMarkup.ASIDE ); } /** {@inheritDoc} */ @Override public void section( int level, SinkEventAttributes attributes ) { onSection( level, attributes ); } /** {@inheritDoc} */ @Override public void sectionTitle( int level, SinkEventAttributes attributes ) { onSectionTitle( level, attributes ); } /** {@inheritDoc} */ @Override public void sectionTitle_( int level ) { onSectionTitle_( level ); } /** {@inheritDoc} */ @Override public void section_( int level ) { onSection_( level ); } /** {@inheritDoc} */ @Override public void section1() { onSection( SECTION_LEVEL_1, null ); } /** {@inheritDoc} */ @Override public void sectionTitle1() { onSectionTitle( SECTION_LEVEL_1, null ); } /** {@inheritDoc} */ @Override public void sectionTitle1_() { onSectionTitle_( SECTION_LEVEL_1 ); } /** {@inheritDoc} */ @Override public void section1_() { onSection_( SECTION_LEVEL_1 ); } /** {@inheritDoc} */ @Override public void section2() { onSection( SECTION_LEVEL_2, null ); } /** {@inheritDoc} */ @Override public void sectionTitle2() { onSectionTitle( SECTION_LEVEL_2, null ); } /** {@inheritDoc} */ @Override public void sectionTitle2_() { onSectionTitle_( SECTION_LEVEL_2 ); } /** {@inheritDoc} */ @Override public void section2_() { onSection_( SECTION_LEVEL_2 ); } /** {@inheritDoc} */ @Override public void section3() { onSection( SECTION_LEVEL_3, null ); } /** {@inheritDoc} */ @Override public void sectionTitle3() { onSectionTitle( SECTION_LEVEL_3, null ); } /** {@inheritDoc} */ @Override public void sectionTitle3_() { onSectionTitle_( SECTION_LEVEL_3 ); } /** {@inheritDoc} */ @Override public void section3_() { onSection_( SECTION_LEVEL_3 ); } /** {@inheritDoc} */ @Override public void section4() { onSection( SECTION_LEVEL_4, null ); } /** {@inheritDoc} */ @Override public void sectionTitle4() { onSectionTitle( SECTION_LEVEL_4, null ); } /** {@inheritDoc} */ @Override public void sectionTitle4_() { onSectionTitle_( SECTION_LEVEL_4 ); } /** {@inheritDoc} */ @Override public void section4_() { onSection_( SECTION_LEVEL_4 ); } /** {@inheritDoc} */ @Override public void section5() { onSection( SECTION_LEVEL_5, null ); } /** {@inheritDoc} */ @Override public void sectionTitle5() { onSectionTitle( SECTION_LEVEL_5, null ); } /** {@inheritDoc} */ @Override public void sectionTitle5_() { onSectionTitle_( SECTION_LEVEL_5 ); } /** {@inheritDoc} */ @Override public void section5_() { onSection_( SECTION_LEVEL_5 ); } /** * Starts a section. The default class style is <code>section</code>. * * @param depth The level of the section. * @param attributes some attributes. May be null. */ protected void onSection( int depth, SinkEventAttributes attributes ) { if ( depth >= SECTION_LEVEL_1 && depth <= SECTION_LEVEL_5 ) { MutableAttributeSet att = new SinkEventAttributeSet(); att.addAttributes( SinkUtils.filterAttributes( |
File | Line |
---|---|
org\apache\maven\doxia\parser\Xhtml5BaseParser.java | 700 |
org\apache\maven\doxia\parser\XhtmlBaseParser.java | 709 |
sink.footer_(); } else if ( parser.getName().equals( HtmlMarkup.SCRIPT.toString() ) || parser.getName().equals( HtmlMarkup.STYLE.toString() ) ) { handleUnknown( parser, sink, TAG_TYPE_END ); scriptBlock = false; } else { visited = false; } return visited; } /** * {@inheritDoc} * * Just calls {@link #baseStartTag(XmlPullParser,Sink)}, this should be * overridden by implementing parsers to include additional tags. */ protected void handleStartTag( XmlPullParser parser, Sink sink ) throws XmlPullParserException, MacroExecutionException { if ( !baseStartTag( parser, sink ) ) { LOGGER.warn( "Unrecognized xml tag <{}> at [{}:{}]", parser.getName(), parser.getLineNumber(), parser.getColumnNumber() ); } } /** * {@inheritDoc} * * Just calls {@link #baseEndTag(XmlPullParser,Sink)}, this should be * overridden by implementing parsers to include additional tags. */ protected void handleEndTag( XmlPullParser parser, Sink sink ) throws XmlPullParserException, MacroExecutionException { if ( !baseEndTag( parser, sink ) ) { // unrecognized tag is already logged in StartTag } } /** {@inheritDoc} */ @Override protected void handleText( XmlPullParser parser, Sink sink ) throws XmlPullParserException { String text = getText( parser ); /* * NOTE: Don't do any whitespace trimming here. Whitespace normalization has already been performed by the * parser so any whitespace that makes it here is significant. * * NOTE: text within script tags is ignored, scripting code should be embedded in CDATA. */ if ( StringUtils.isNotEmpty( text ) && !isScriptBlock() ) { sink.text( text ); } } /** {@inheritDoc} */ @Override protected void handleComment( XmlPullParser parser, Sink sink ) throws XmlPullParserException { String text = getText( parser ); if ( "PB".equals( text.trim() ) ) { sink.pageBreak(); } else { if ( isEmitComments() ) { sink.comment( text ); } } } /** {@inheritDoc} */ @Override protected void handleCdsect( XmlPullParser parser, Sink sink ) throws XmlPullParserException { String text = getText( parser ); if ( isScriptBlock() ) { sink.unknown( CDATA, new Object[] { CDATA_TYPE, text }, null ); } else { sink.text( text ); } } /** * Make sure sections are nested consecutively. * * <p> * HTML5 heading tags H1 to H6 imply sections where they are not * present, that means we have to open close any sections that * are missing in between. * </p> * * <p> * For instance, if the following sequence is parsed: * </p> * <pre> * <h3></h3> * <h6></h6> * </pre> * <p> * we have to insert two section starts before we open the <code><h6></code>. * In the following sequence * </p> * <pre> * <h6></h6> * <h3></h3> * </pre> * <p> * we have to close two sections before we open the <code><h3></code>. * </p> * * <p>The current level is set to newLevel afterwards.</p> * * @param newLevel the new section level, all upper levels have to be closed. * @param sink the sink to receive the events. * @param attribs a {@link org.apache.maven.doxia.sink.impl.SinkEventAttributeSet} object. */ protected void consecutiveSections( int newLevel, Sink sink, SinkEventAttributeSet attribs ) |
File | Line |
---|---|
org\apache\maven\doxia\sink\impl\Xhtml5BaseSink.java | 133 |
org\apache\maven\doxia\sink\impl\XhtmlBaseSink.java | 145 |
public Xhtml5BaseSink( Writer out ) { this.writer = new PrintWriter( out ); this.cellJustifStack = new LinkedList<>(); this.isCellJustifStack = new LinkedList<>(); this.cellCountStack = new LinkedList<>(); this.tableContentWriterStack = new LinkedList<>(); this.tableCaptionWriterStack = new LinkedList<>(); this.tableCaptionXMLWriterStack = new LinkedList<>(); this.tableCaptionStack = new LinkedList<>(); init(); } // ---------------------------------------------------------------------- // Accessor methods // ---------------------------------------------------------------------- /** * To use mainly when playing with the head events. * * @return the current buffer of text events. */ protected StringBuffer getTextBuffer() { return this.textBuffer; } /** * <p>Setter for the field <code>headFlag</code>.</p> * * @param headFlag an header flag. */ protected void setHeadFlag( boolean headFlag ) { this.headFlag = headFlag; } /** * <p>isHeadFlag.</p> * * @return the current headFlag. */ protected boolean isHeadFlag() { return this.headFlag ; } /** * <p>Setter for the field <code>verbatimFlag</code>.</p> * * @param verb a verbatim flag. */ protected void setVerbatimFlag( boolean verb ) { this.verbatimFlag = verb; } /** * <p>isVerbatimFlag.</p> * * @return the current verbatim flag. */ protected boolean isVerbatimFlag() { return this.verbatimFlag ; } /** * <p>Setter for the field <code>cellJustif</code>.</p> * * @param justif the new cell justification array. */ protected void setCellJustif( int[] justif ) { this.cellJustifStack.addLast( justif ); this.isCellJustifStack.addLast( Boolean.TRUE ); } /** * <p>Getter for the field <code>cellJustif</code>.</p> * * @return the current cell justification array. */ protected int[] getCellJustif() { return this.cellJustifStack.getLast(); } /** * <p>Setter for the field <code>cellCount</code>.</p> * * @param count the new cell count. */ protected void setCellCount( int count ) { this.cellCountStack.addLast( count ); } /** * <p>Getter for the field <code>cellCount</code>.</p> * * @return the current cell count. */ protected int getCellCount() { return Integer.parseInt( this.cellCountStack.getLast().toString() ); } /** {@inheritDoc} */ @Override protected void init() { super.init(); resetTextBuffer(); this.cellJustifStack.clear(); this.isCellJustifStack.clear(); this.cellCountStack.clear(); this.tableContentWriterStack.clear(); this.tableCaptionWriterStack.clear(); this.tableCaptionXMLWriterStack.clear(); this.tableCaptionStack.clear(); this.inlineStack.clear(); |
File | Line |
---|---|
org\apache\maven\doxia\parser\Xhtml5BaseParser.java | 1007 |
org\apache\maven\doxia\parser\XhtmlBaseParser.java | 1013 |
this.inVerbatim = false; } private void handleAEnd( Sink sink ) { if ( isLink ) { sink.link_(); isLink = false; } else if ( isAnchor ) { sink.anchor_(); isAnchor = false; } } private void handleAStart( XmlPullParser parser, Sink sink, SinkEventAttributeSet attribs ) { String href = parser.getAttributeValue( null, Attribute.HREF.toString() ); if ( href != null ) { int hashIndex = href.indexOf( '#' ); if ( hashIndex != -1 && !DoxiaUtils.isExternalLink( href ) ) { String hash = href.substring( hashIndex + 1 ); if ( !DoxiaUtils.isValidId( hash ) ) { href = href.substring( 0, hashIndex ) + "#" + DoxiaUtils.encodeId( hash, true ); LOGGER.debug( "Modified invalid link '{}' to '{}'", hash, href ); } } sink.link( href, attribs ); isLink = true; } else { String name = parser.getAttributeValue( null, Attribute.NAME.toString() ); if ( name != null ) { sink.anchor( validAnchor( name ), attribs ); isAnchor = true; } else { String id = parser.getAttributeValue( null, Attribute.ID.toString() ); if ( id != null ) { sink.anchor( validAnchor( id ), attribs ); isAnchor = true; } } } } private boolean handleDivStart( XmlPullParser parser, SinkEventAttributeSet attribs, Sink sink ) { |
File | Line |
---|---|
org\apache\maven\doxia\parser\Xhtml5BaseParser.java | 337 |
org\apache\maven\doxia\parser\XhtmlBaseParser.java | 451 |
handleDivStart( parser, attribs, sink ); } else if ( parser.getName().equals( HtmlMarkup.PRE.toString() ) ) { handlePreStart( attribs, sink ); } else if ( parser.getName().equals( HtmlMarkup.UL.toString() ) ) { sink.list( attribs ); } else if ( parser.getName().equals( HtmlMarkup.OL.toString() ) ) { handleOLStart( parser, sink, attribs ); } else if ( parser.getName().equals( HtmlMarkup.LI.toString() ) ) { handleLIStart( sink, attribs ); } else if ( parser.getName().equals( HtmlMarkup.DL.toString() ) ) { sink.definitionList( attribs ); } else if ( parser.getName().equals( HtmlMarkup.DT.toString() ) ) { if ( hasDefinitionListItem ) { // close previous listItem sink.definitionListItem_(); } sink.definitionListItem( attribs ); hasDefinitionListItem = true; sink.definedTerm( attribs ); } else if ( parser.getName().equals( HtmlMarkup.DD.toString() ) ) { if ( !hasDefinitionListItem ) { sink.definitionListItem( attribs ); } sink.definition( attribs ); } else if ( ( parser.getName().equals( HtmlMarkup.FIGURE.toString() ) ) ) |
File | Line |
---|---|
org\apache\maven\doxia\parser\Xhtml5BaseParser.java | 1108 |
org\apache\maven\doxia\parser\XhtmlBaseParser.java | 1115 |
} private void handleImgStart( XmlPullParser parser, Sink sink, SinkEventAttributeSet attribs ) { String src = parser.getAttributeValue( null, Attribute.SRC.toString() ); if ( src != null ) { sink.figureGraphics( src, attribs ); } } private void handleLIStart( Sink sink, SinkEventAttributeSet attribs ) { if ( orderedListDepth == 0 ) { sink.listItem( attribs ); } else { sink.numberedListItem( attribs ); } } private void handleListItemEnd( Sink sink ) { if ( orderedListDepth == 0 ) { sink.listItem_(); } else { sink.numberedListItem_(); } } private void handleOLStart( XmlPullParser parser, Sink sink, SinkEventAttributeSet attribs ) { int numbering = Sink.NUMBERING_DECIMAL; // this will have to be generalized if we handle styles String style = parser.getAttributeValue( null, Attribute.STYLE.toString() ); if ( style != null ) { switch ( style ) { case "list-style-type: upper-alpha": numbering = Sink.NUMBERING_UPPER_ALPHA; break; case "list-style-type: lower-alpha": numbering = Sink.NUMBERING_LOWER_ALPHA; break; case "list-style-type: upper-roman": numbering = Sink.NUMBERING_UPPER_ROMAN; break; case "list-style-type: lower-roman": numbering = Sink.NUMBERING_LOWER_ROMAN; break; case "list-style-type: decimal": numbering = Sink.NUMBERING_DECIMAL; break; default: // ignore all other } } sink.numberedList( numbering, attribs ); orderedListDepth++; } private void handlePStart( Sink sink, SinkEventAttributeSet attribs ) { |
File | Line |
---|---|
org\apache\maven\doxia\parser\Xhtml5BaseParser.java | 463 |
org\apache\maven\doxia\parser\XhtmlBaseParser.java | 605 |
} else if ( parser.getName().equals( HtmlMarkup.PRE.toString() ) ) { verbatim_(); sink.verbatim_(); } else if ( parser.getName().equals( HtmlMarkup.UL.toString() ) ) { sink.list_(); } else if ( parser.getName().equals( HtmlMarkup.OL.toString() ) ) { sink.numberedList_(); orderedListDepth--; } else if ( parser.getName().equals( HtmlMarkup.LI.toString() ) ) { handleListItemEnd( sink ); } else if ( parser.getName().equals( HtmlMarkup.DL.toString() ) ) { if ( hasDefinitionListItem ) { sink.definitionListItem_(); hasDefinitionListItem = false; } sink.definitionList_(); } else if ( parser.getName().equals( HtmlMarkup.DT.toString() ) ) { sink.definedTerm_(); } else if ( parser.getName().equals( HtmlMarkup.DD.toString() ) ) { sink.definition_(); sink.definitionListItem_(); hasDefinitionListItem = false; } else if ( ( parser.getName().equals( HtmlMarkup.FIGURE.toString() ) ) ) |
File | Line |
---|---|
org\apache\maven\doxia\parser\Xhtml5BaseParser.java | 384 |
org\apache\maven\doxia\parser\XhtmlBaseParser.java | 507 |
sink.figureCaption( attribs ); } else if ( parser.getName().equals( HtmlMarkup.A.toString() ) ) { handleAStart( parser, sink, attribs ); } else if ( parser.getName().equals( HtmlMarkup.TABLE.toString() ) ) { handleTableStart( sink, attribs, parser ); } else if ( parser.getName().equals( HtmlMarkup.TR.toString() ) ) { sink.tableRow( attribs ); } else if ( parser.getName().equals( HtmlMarkup.TH.toString() ) ) { sink.tableHeaderCell( attribs ); } else if ( parser.getName().equals( HtmlMarkup.TD.toString() ) ) { sink.tableCell( attribs ); } else if ( parser.getName().equals( HtmlMarkup.CAPTION.toString() ) ) { sink.tableCaption( attribs ); } else if ( parser.getName().equals( HtmlMarkup.BR.toString() ) ) { sink.lineBreak( attribs ); } else if ( parser.getName().equals( HtmlMarkup.WBR.toString() ) ) |
File | Line |
---|---|
org\apache\maven\doxia\sink\impl\Xhtml5BaseSink.java | 549 |
org\apache\maven\doxia\sink\impl\XhtmlBaseSink.java | 495 |
writeEndTag( HtmlMarkup.SECTION ); } } /** * Starts a section title. * * @param depth The level of the section title. * @param attributes some attributes. May be null. * @see javax.swing.text.html.HTML.Tag#H2 * @see javax.swing.text.html.HTML.Tag#H3 * @see javax.swing.text.html.HTML.Tag#H4 * @see javax.swing.text.html.HTML.Tag#H5 * @see javax.swing.text.html.HTML.Tag#H6 */ protected void onSectionTitle( int depth, SinkEventAttributes attributes ) { MutableAttributeSet atts = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_SECTION_ATTRIBUTES ); if ( depth == SECTION_LEVEL_1 ) { writeStartTag( HtmlMarkup.H2, atts ); } else if ( depth == SECTION_LEVEL_2 ) { writeStartTag( HtmlMarkup.H3, atts ); } else if ( depth == SECTION_LEVEL_3 ) { writeStartTag( HtmlMarkup.H4, atts ); } else if ( depth == SECTION_LEVEL_4 ) { writeStartTag( HtmlMarkup.H5, atts ); } else if ( depth == SECTION_LEVEL_5 ) { writeStartTag( HtmlMarkup.H6, atts ); } } /** * Ends a section title. * * @param depth The level of the section title. * @see javax.swing.text.html.HTML.Tag#H2 * @see javax.swing.text.html.HTML.Tag#H3 * @see javax.swing.text.html.HTML.Tag#H4 * @see javax.swing.text.html.HTML.Tag#H5 * @see javax.swing.text.html.HTML.Tag#H6 */ protected void onSectionTitle_( int depth ) { if ( depth == SECTION_LEVEL_1 ) { writeEndTag( HtmlMarkup.H2 ); } else if ( depth == SECTION_LEVEL_2 ) { writeEndTag( HtmlMarkup.H3 ); } else if ( depth == SECTION_LEVEL_3 ) { writeEndTag( HtmlMarkup.H4 ); } else if ( depth == SECTION_LEVEL_4 ) { writeEndTag( HtmlMarkup.H5 ); } else if ( depth == SECTION_LEVEL_5 ) { writeEndTag( HtmlMarkup.H6 ); } } /** {@inheritDoc} */ @Override public void header() |
File | Line |
---|---|
org\apache\maven\doxia\sink\impl\Xhtml5BaseSink.java | 1915 |
org\apache\maven\doxia\sink\impl\XhtmlBaseSink.java | 1786 |
inlineSemantics( attributes, "bidirectionalIsolation", tags, HtmlMarkup.BDI ); inlineSemantics( attributes, "bidirectionalOverride", tags, HtmlMarkup.BDO ); inlineSemantics( attributes, "phrase", tags, HtmlMarkup.SPAN ); inlineSemantics( attributes, "insert", tags, HtmlMarkup.INS ); inlineSemantics( attributes, "delete", tags, HtmlMarkup.DEL ); } inlineStack.push( tags ); } } /** {@inheritDoc} */ @Override public void inline_() { if ( !headFlag ) { for ( Tag tag: inlineStack.pop() ) { writeEndTag( tag ); } } } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#I */ @Override public void italic() { inline( SinkEventAttributeSet.Semantics.ITALIC ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#I */ @Override public void italic_() { inline_(); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#B */ @Override public void bold() { inline( SinkEventAttributeSet.Semantics.BOLD ); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#B */ @Override public void bold_() { inline_(); } /** * {@inheritDoc} * @see javax.swing.text.html.HTML.Tag#CODE */ @Override public void monospaced() { inline( SinkEventAttributeSet.Semantics.CODE ); |
File | Line |
---|---|
org\apache\maven\doxia\parser\Xhtml5BaseParser.java | 416 |
org\apache\maven\doxia\parser\XhtmlBaseParser.java | 535 |
sink.lineBreakOpportunity( attribs ); } else if ( parser.getName().equals( HtmlMarkup.HR.toString() ) ) { sink.horizontalRule( attribs ); } else if ( parser.getName().equals( HtmlMarkup.IMG.toString() ) ) { handleImgStart( parser, sink, attribs ); } else if ( parser.getName().equals( HtmlMarkup.SCRIPT.toString() ) || parser.getName().equals( HtmlMarkup.STYLE.toString() ) ) { handleUnknown( parser, sink, TAG_TYPE_START ); scriptBlock = true; } else { visited = false; } return visited; } /** * <p> * Goes through a common list of possible html end tags. * These should be re-usable by different xhtml-based parsers. * The tags handled here are the same as for {@link #baseStartTag(XmlPullParser,Sink)}, * except for the empty elements ({@code <br/>, <hr/>, <img/>}). * </p> * * @param parser A parser. * @param sink the sink to receive the events. * @return True if the event has been handled by this method, false otherwise. */ protected boolean baseEndTag( XmlPullParser parser, Sink sink ) { boolean visited = true; if ( parser.getName().equals( HtmlMarkup.P.toString() ) ) { |
File | Line |
---|---|
org\apache\maven\doxia\parser\Xhtml5BaseParser.java | 625 |
org\apache\maven\doxia\parser\XhtmlBaseParser.java | 662 |
sink.inline_(); } // ---------------------------------------------------------------------- // Tables // ---------------------------------------------------------------------- else if ( parser.getName().equals( HtmlMarkup.TABLE.toString() ) ) { sink.tableRows_(); sink.table_(); } else if ( parser.getName().equals( HtmlMarkup.TR.toString() ) ) { sink.tableRow_(); } else if ( parser.getName().equals( HtmlMarkup.TH.toString() ) ) { sink.tableHeaderCell_(); } else if ( parser.getName().equals( HtmlMarkup.TD.toString() ) ) { sink.tableCell_(); } else if ( parser.getName().equals( HtmlMarkup.CAPTION.toString() ) ) { sink.tableCaption_(); } else if ( parser.getName().equals( HtmlMarkup.ARTICLE.toString() ) ) |
File | Line |
---|---|
org\apache\maven\doxia\parser\Xhtml5BaseParser.java | 668 |
org\apache\maven\doxia\parser\XhtmlBaseParser.java | 689 |
handleSectionEnd( sink ); } else if ( parser.getName().equals( HtmlMarkup.H2.toString() ) ) { sink.sectionTitle1_(); } else if ( parser.getName().equals( HtmlMarkup.H3.toString() ) ) { sink.sectionTitle2_(); } else if ( parser.getName().equals( HtmlMarkup.H4.toString() ) ) { sink.sectionTitle3_(); } else if ( parser.getName().equals( HtmlMarkup.H5.toString() ) ) { sink.sectionTitle4_(); } else if ( parser.getName().equals( HtmlMarkup.H6.toString() ) ) { sink.sectionTitle5_(); } else if ( parser.getName().equals( HtmlMarkup.HEADER.toString() ) ) |
File | Line |
---|---|
org\apache\maven\doxia\parser\Xhtml5BaseParser.java | 1215 |
org\apache\maven\doxia\parser\XhtmlBaseParser.java | 1213 |
sink.section_( sectionLevel-- ); } private void handleTableStart( Sink sink, SinkEventAttributeSet attribs, XmlPullParser parser ) { sink.table( attribs ); String border = parser.getAttributeValue( null, Attribute.BORDER.toString() ); boolean grid = true; if ( border == null || "0".equals( border ) ) { grid = false; } String align = parser.getAttributeValue( null, Attribute.ALIGN.toString() ); int[] justif = {Sink.JUSTIFY_LEFT}; if ( "center".equals( align ) ) { justif[0] = Sink.JUSTIFY_CENTER; } else if ( "right".equals( align ) ) { justif[0] = Sink.JUSTIFY_RIGHT; } sink.tableRows( justif, grid ); } } |
File | Line |
---|---|
org\apache\maven\doxia\parser\Xhtml5BaseParser.java | 935 |
org\apache\maven\doxia\parser\XhtmlBaseParser.java | 940 |
this.headingLevel = newLevel; } /** * Stop verbatim mode. */ protected void verbatim_() { this.inVerbatim = false; } /** * Start verbatim mode. */ protected void verbatim() { this.inVerbatim = true; } /** * Checks if we are currently inside a <pre> tag. * * @return true if we are currently in verbatim mode. */ protected boolean isVerbatim() { return this.inVerbatim; } /** * Checks if we are currently inside a <script> tag. * * @return true if we are currently inside <code><script></code> tags. * @since 1.1.1. */ protected boolean isScriptBlock() { return this.scriptBlock; } /** * Checks if the given id is a valid Doxia id and if not, returns a transformed one. * * @param id The id to validate. * @return A transformed id or the original id if it was already valid. * @see DoxiaUtils#encodeId(String) */ protected String validAnchor( String id ) { if ( !DoxiaUtils.isValidId( id ) ) { String linkAnchor = DoxiaUtils.encodeId( id, true ); LOGGER.debug( "Modified invalid link '{}' to '{}'", id, linkAnchor ); return linkAnchor; } return id; } /** {@inheritDoc} */ @Override protected void init() { super.init(); this.scriptBlock = false; this.isLink = false; this.isAnchor = false; this.orderedListDepth = 0; this.headingLevel = 0; |
File | Line |
---|---|
org\apache\maven\doxia\sink\impl\Xhtml5BaseSink.java | 1043 |
org\apache\maven\doxia\sink\impl\XhtmlBaseSink.java | 947 |
MutableAttributeSet filtered = SinkUtils.filterAttributes( attributes, SinkUtils.SINK_IMG_ATTRIBUTES ); if ( filtered != null ) { filtered.removeAttribute( Attribute.SRC.toString() ); } int count = ( attributes == null ? 1 : attributes.getAttributeCount() + 1 ); MutableAttributeSet atts = new SinkEventAttributeSet( count ); atts.addAttribute( Attribute.SRC, HtmlTools.escapeHTML( src, true ) ); atts.addAttributes( filtered ); if ( atts.getAttribute( Attribute.ALT.toString() ) == null ) { atts.addAttribute( Attribute.ALT.toString(), "" ); } writeStartTag( HtmlMarkup.IMG, atts, true ); |