Author: ltheussl Date: Thu Sep 20 04:30:15 2007 New Revision: 577691 URL: http://svn.apache.org/viewvc?rev=577691&view=rev Log: Allow to set a namespace. Factor out utility method.
Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/AbstractXmlSink.java Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/AbstractXmlSink.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/AbstractXmlSink.java?rev=577691&r1=577690&r2=577691&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/AbstractXmlSink.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/AbstractXmlSink.java Thu Sep 20 04:30:15 2007 @@ -38,6 +38,60 @@ extends SinkAdapter implements XmlMarkup { + /** Default namespace prepended to all tags */ + private String nameSpace; + + /** + * Sets the default namespace that is prepended to all tags written by this sink. + * + * @param ns the default namespace. + */ + public void setNameSpace( String ns ) + { + this.nameSpace = ns; + } + + /** + * Return the default namespace that is prepended to all tags written by this sink. + * + * @return the current default namespace. + */ + public String getNameSpace() + { + return this.nameSpace; + } + + /** + * Utility method to get an AttributeSet as a String. + * + * @param att The AttributeSet. + * @return String + */ + public static String getAttributeString( MutableAttributeSet att ) + { + StringBuffer sb = new StringBuffer(); + + if ( att != null ) + { + Enumeration names = att.getAttributeNames(); + + while ( names.hasMoreElements() ) + { + Object key = names.nextElement(); + Object value = att.getAttribute( key ); + + // AttributeSets are ignored + if ( !(value instanceof AttributeSet) ) + { + sb.append( String.valueOf( SPACE ) ).append( key.toString() ).append( String.valueOf( EQUAL ) ) + .append( String.valueOf( QUOTE ) ).append( value.toString() ).append( String.valueOf( QUOTE ) ); + } + } + } + + return sb.toString(); + } + /** * Starts a Tag. For instance: * <pre> @@ -86,28 +140,15 @@ StringBuffer sb = new StringBuffer(); sb.append( String.valueOf( LESS_THAN ) ); - sb.append( t.toString() ); - if ( att != null ) + if ( nameSpace != null ) { - Enumeration names = att.getAttributeNames(); + sb.append( nameSpace ).append( ":" ); + } - while ( names.hasMoreElements() ) - { - Object key = names.nextElement(); - Object value = att.getAttribute( key ); + sb.append( t.toString() ); - if ( value instanceof AttributeSet ) - { - // ignored - } - else - { - sb.append( String.valueOf( SPACE ) ).append( key.toString() ).append( String.valueOf( EQUAL ) ) - .append( String.valueOf( QUOTE ) ).append( value.toString() ).append( String.valueOf( QUOTE ) ); - } - } - } + sb.append( getAttributeString( att ) ); if ( isSimpleTag ) { @@ -137,6 +178,12 @@ StringBuffer sb = new StringBuffer(); sb.append( String.valueOf( LESS_THAN ) ); sb.append( String.valueOf( SLASH ) ); + + if ( nameSpace != null ) + { + sb.append( nameSpace ).append( ":" ); + } + sb.append( t.toString() ); sb.append( String.valueOf( GREATER_THAN ) );