diff --git a/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java b/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java index b0d1a7d7..f38c1abd 100644 --- a/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java +++ b/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java @@ -60,7 +60,7 @@ public class PrettyPrintXMLWriter /** * @param writer not null - * @param lineIndent could be null, but the normal way is some spaces. + * @param lineIndent can be null, but the normal way is some spaces */ public PrettyPrintXMLWriter( PrintWriter writer, String lineIndent ) { @@ -69,7 +69,7 @@ public PrettyPrintXMLWriter( PrintWriter writer, String lineIndent ) /** * @param writer not null - * @param lineIndent could be null, but the normal way is some spaces. + * @param lineIndent can be null, but the normal way is some spaces. */ public PrettyPrintXMLWriter( Writer writer, String lineIndent ) { @@ -94,9 +94,9 @@ public PrettyPrintXMLWriter( Writer writer ) /** * @param writer not null - * @param lineIndent could be null, but the normal way is some spaces. - * @param encoding could be null or invalid. - * @param doctype could be null. + * @param lineIndent can be null, but the normal way is some spaces + * @param encoding can be null or invalid + * @param doctype can be null */ public PrettyPrintXMLWriter( PrintWriter writer, String lineIndent, String encoding, String doctype ) { @@ -105,9 +105,9 @@ public PrettyPrintXMLWriter( PrintWriter writer, String lineIndent, String encod /** * @param writer not null - * @param lineIndent could be null, but the normal way is some spaces. - * @param encoding could be null or invalid. - * @param doctype could be null. + * @param lineIndent can be null, but the normal way is some spaces + * @param encoding can be null or invalid + * @param doctype can be null */ public PrettyPrintXMLWriter( Writer writer, String lineIndent, String encoding, String doctype ) { @@ -116,8 +116,8 @@ public PrettyPrintXMLWriter( Writer writer, String lineIndent, String encoding, /** * @param writer not null - * @param encoding could be null or invalid. - * @param doctype could be null. + * @param encoding can be null or invalid + * @param doctype can be null */ public PrettyPrintXMLWriter( PrintWriter writer, String encoding, String doctype ) { @@ -126,8 +126,8 @@ public PrettyPrintXMLWriter( PrintWriter writer, String encoding, String doctype /** * @param writer not null - * @param encoding could be null or invalid. - * @param doctype could be null. + * @param encoding can be null or invalid + * @param doctype can be null */ public PrettyPrintXMLWriter( Writer writer, String encoding, String doctype ) { @@ -136,10 +136,10 @@ public PrettyPrintXMLWriter( Writer writer, String encoding, String doctype ) /** * @param writer not null - * @param lineIndent could be null, but the normal way is some spaces. - * @param lineSeparator could be null, but the normal way is valid line separator - * @param encoding could be null or the encoding to use. - * @param doctype could be null. + * @param lineIndent can be null, but the normal way is some spaces. + * @param lineSeparator can be null, but the normal way is valid line separator + * @param encoding can be null or the encoding to use. + * @param doctype can be null */ public PrettyPrintXMLWriter( PrintWriter writer, String lineIndent, String lineSeparator, String encoding, String doctype ) @@ -149,10 +149,10 @@ public PrettyPrintXMLWriter( PrintWriter writer, String lineIndent, String lineS /** * @param writer not null - * @param lineIndent could be null, but the normal way is some spaces. - * @param lineSeparator could be null, but the normal way is valid line separator - * @param encoding could be null or the encoding to use. - * @param doctype could be null. + * @param lineIndent can be null, but the normal way is some spaces + * @param lineSeparator can be null, but the normal way is valid line separator + * @param encoding can be null or the encoding to use + * @param doctype can be null */ private PrettyPrintXMLWriter( PrintWriter writer, char[] lineIndent, char[] lineSeparator, String encoding, String doctype ) @@ -211,7 +211,7 @@ public void setDocType( String docType ) } /** - * @param lineSeparator The line separator to be used. + * @param lineSeparator the line separator to be output */ public void setLineSeparator( String lineSeparator ) { @@ -224,7 +224,7 @@ public void setLineSeparator( String lineSeparator ) } /** - * @param lineIndentParameter The line indent parameter. + * @param lineIndentParameter the line indent parameter */ public void setLineIndenter( String lineIndentParameter ) { @@ -239,6 +239,12 @@ public void setLineIndenter( String lineIndentParameter ) /** {@inheritDoc} */ public void startElement( String elementName ) throws IOException { + + if ( elementName.isEmpty() ) + { + throw new IllegalArgumentException( "Element name cannot be empty" ); + } + boolean firstLine = ensureDocumentStarted(); completePreviouslyOpenedElement(); @@ -325,7 +331,7 @@ public void endElement() throws IOException } /** - * Write the documents if not already done. + * Write the document if not already done. * * @return true if the document headers have freshly been written. */ diff --git a/src/main/java/org/apache/maven/shared/utils/xml/XMLWriter.java b/src/main/java/org/apache/maven/shared/utils/xml/XMLWriter.java index 0daad8bc..32a56d26 100644 --- a/src/main/java/org/apache/maven/shared/utils/xml/XMLWriter.java +++ b/src/main/java/org/apache/maven/shared/utils/xml/XMLWriter.java @@ -30,7 +30,7 @@ public interface XMLWriter /** * Sets the encoding of the document. - * If not set, UTF-8 is being used + * If not set, UTF-8 is used. * * @param encoding the encoding * @throws IllegalStateException if the generation of the document has already started @@ -38,7 +38,7 @@ public interface XMLWriter void setEncoding( String encoding ); /** - * Sets the docType of the document. + * Sets the DOCTYPE of the document. * * @param docType the docType * @throws IllegalStateException if the generation of the document has already started @@ -48,15 +48,17 @@ public interface XMLWriter /** * Start an XML Element tag. - * @param name The name of the tag. - * @throws IOException if starting the element fails. + * + * @param name the name of the tag + * @throws IOException if starting the element fails */ void startElement( String name ) throws IOException; /** * Add a XML attribute to the current XML Element. - * This method must get called immediately after {@link #startElement(String)} + * This method must get called immediately after {@link #startElement(String)}. + * * @param key The key of the attribute. * @param value The value of the attribute. * @throws IllegalStateException if no element tag is currently in process @@ -65,8 +67,9 @@ public interface XMLWriter void addAttribute( String key, String value ) throws IOException; /** - * Add a value text to the current element tag - * This will perform XML escaping to guarantee valid content + * Add text to the current element tag. + * This performs XML escaping to guarantee well-formed content. + * * @param text The text which should be written. * @throws IllegalStateException if no element tag got started yet * @throws IOException if writing the text fails. @@ -74,10 +77,11 @@ public interface XMLWriter void writeText( String text ) throws IOException; /** - * Add a preformatted markup to the current element tag - * @param text The text which should be written. - * @throws IllegalStateException if no element tag got started yet - * @throws IOException if writing the markup fails. + * Add preformatted markup to the current element tag. + * + * @param text the text which should be written + * @throws IllegalStateException if no element tag is started yet + * @throws IOException if writing the markup fails */ void writeMarkup( String text ) throws IOException; diff --git a/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java b/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java index 4830f433..d0611119 100644 --- a/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java +++ b/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java @@ -20,9 +20,8 @@ */ import java.io.IOException; - -import javax.swing.text.html.HTML; import java.io.StringWriter; +import javax.swing.text.html.HTML; import org.apache.maven.shared.utils.StringUtils; import org.junit.Assert; @@ -32,13 +31,25 @@ * Test of {@link PrettyPrintXMLWriter} * * @author Vincent Siveton - * */ public class PrettyPrintXmlWriterTest { - private StringWriter w = new StringWriter(); + private StringWriter w = new StringWriter();; private PrettyPrintXMLWriter writer = new PrettyPrintXMLWriter( w ); + @Test + public void testNoStartTag() throws IOException + { + + try { + writer.startElement( "" ); + Assert.fail( "allowed empty name" ); + } catch ( IllegalArgumentException ex ) { + Assert.assertEquals( "Element name cannot be empty", ex.getMessage() ); + } + + } + @Test public void testDefaultPrettyPrintXMLWriter() throws IOException {