You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2007/11/06 23:24:01 UTC
svn commit: r592572 - in /incubator/abdera/java/trunk:
core/src/main/java/org/apache/abdera/util/
core/src/main/java/org/apache/abdera/writer/
parser/src/main/java/org/apache/abdera/parser/stax/
Author: jmsnell
Date: Tue Nov 6 14:23:59 2007
New Revision: 592572
URL: http://svn.apache.org/viewvc?rev=592572&view=rev
Log:
Optionally tell the streamwriter to autoflush or autoclose
Modified:
incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbstractStreamWriter.java
incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/writer/StreamWriter.java
incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/StaxStreamWriter.java
Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbstractStreamWriter.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbstractStreamWriter.java?rev=592572&r1=592571&r2=592572&view=diff
==============================================================================
--- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbstractStreamWriter.java (original)
+++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbstractStreamWriter.java Tue Nov 6 14:23:59 2007
@@ -20,6 +20,8 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.channels.Channels;
+import java.nio.channels.WritableByteChannel;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@@ -38,9 +40,29 @@
implements StreamWriter {
protected final String name;
+ protected boolean autoflush = false;
+ protected boolean autoclose = false;
protected AbstractStreamWriter(String name) {
this.name = name;
+ }
+
+ public StreamWriter setAutoflush(boolean auto) {
+ this.autoflush = auto;
+ return this;
+ }
+
+ public StreamWriter setAutoclose(boolean auto) {
+ this.autoclose = auto;
+ return this;
+ }
+
+ public StreamWriter setChannel(WritableByteChannel channel) {
+ return setOutputStream(Channels.newOutputStream(channel));
+ }
+
+ public StreamWriter setChannel(WritableByteChannel channel, String charset) {
+ return setWriter(Channels.newWriter(channel, charset));
}
public String getName() {
Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/writer/StreamWriter.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/writer/StreamWriter.java?rev=592572&r1=592571&r2=592572&view=diff
==============================================================================
--- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/writer/StreamWriter.java (original)
+++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/writer/StreamWriter.java Tue Nov 6 14:23:59 2007
@@ -41,6 +41,16 @@
extends NamedItem {
/**
+ * True if the StreamWriter should autoclose the buffer after calling endDocument
+ */
+ StreamWriter setAutoclose(boolean auto);
+
+ /**
+ * True if the StreamWriter should autoflush the buffer
+ */
+ StreamWriter setAutoflush(boolean auto);
+
+ /**
* Set the target java.io.Writer
*/
StreamWriter setWriter(java.io.Writer writer);
@@ -54,6 +64,16 @@
* Set the target java.io.OutputStream
*/
StreamWriter setOutputStream(java.io.OutputStream out, String charset);
+
+ /**
+ * Set the target WritableByteChannel
+ */
+ StreamWriter setChannel(java.nio.channels.WritableByteChannel channel);
+
+ /**
+ * Set the target WritableByteChannel
+ */
+ StreamWriter setChannel(java.nio.channels.WritableByteChannel channel, String charset);
/**
* Start the document
Modified: incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/StaxStreamWriter.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/StaxStreamWriter.java?rev=592572&r1=592571&r2=592572&view=diff
==============================================================================
--- incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/StaxStreamWriter.java (original)
+++ incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/StaxStreamWriter.java Tue Nov 6 14:23:59 2007
@@ -108,6 +108,7 @@
public StreamWriter endDocument() {
try {
writer.writeEndDocument();
+ if (autoclose) writer.close();
} catch(XMLStreamException e) {
throw new RuntimeException(e);
}
@@ -118,6 +119,7 @@
try {
pop();
writer.writeEndElement();
+ if (autoflush) writer.flush();
} catch(XMLStreamException e) {
throw new RuntimeException(e);
}
@@ -154,6 +156,7 @@
attributes.get(attr));
}
}
+ if (autoflush) writer.flush();
} catch(XMLStreamException e) {
throw new RuntimeException(e);
}
@@ -163,6 +166,7 @@
public StreamWriter writeElementText(String value) {
try {
writer.writeCharacters(value);
+ if (autoflush) writer.flush();
} catch(XMLStreamException e) {
throw new RuntimeException(e);
}
@@ -172,6 +176,7 @@
public StreamWriter writeComment(String value) {
try {
writer.writeComment(value);
+ if (autoflush) writer.flush();
} catch(XMLStreamException e) {
throw new RuntimeException(e);
}
@@ -181,6 +186,7 @@
public StreamWriter writePI(String value) {
try {
writer.writeProcessingInstruction(value);
+ if (autoflush) writer.flush();
} catch(XMLStreamException e) {
throw new RuntimeException(e);
}
@@ -190,6 +196,7 @@
public StreamWriter writePI(String value, String target) {
try {
writer.writeProcessingInstruction(value,target);
+ if (autoflush) writer.flush();
} catch(XMLStreamException e) {
throw new RuntimeException(e);
}