X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=lib%2Fservlet-api%2Fjavax%2Fservlet%2FServletOutputStream.java;fp=lib%2Fservlet-api%2Fjavax%2Fservlet%2FServletOutputStream.java;h=3498e2d5695490b7456d2d47a5410c1b6a901dfe;hp=0000000000000000000000000000000000000000;hb=454e6afd89d77c1005eae4838e74e82fae759668;hpb=c2ca9ecd6facc79051cca2e6d46f211dfd54c7b9
diff --git a/lib/servlet-api/javax/servlet/ServletOutputStream.java b/lib/servlet-api/javax/servlet/ServletOutputStream.java
new file mode 100644
index 00000000..3498e2d5
--- /dev/null
+++ b/lib/servlet-api/javax/servlet/ServletOutputStream.java
@@ -0,0 +1,302 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.servlet;
+
+import java.io.CharConversionException;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.text.MessageFormat;
+import java.util.ResourceBundle;
+
+/**
+ * Provides an output stream for sending binary data to the client. A
+ * ServletOutputStream
object is normally retrieved via the
+ * {@link ServletResponse#getOutputStream} method.
+ *
+ * This is an abstract class that the servlet container implements. Subclasses
+ * of this class must implement the java.io.OutputStream.write(int)
+ * method.
+ *
+ * @see ServletResponse
+ */
+public abstract class ServletOutputStream extends OutputStream {
+
+ private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
+ private static final ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE);
+
+ /**
+ * Does nothing, because this is an abstract class.
+ */
+ protected ServletOutputStream() {
+ // NOOP
+ }
+
+ /**
+ * Writes a String
to the client, without a carriage
+ * return-line feed (CRLF) character at the end.
+ *
+ * @param s
+ * the String
to send to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void print(String s) throws IOException {
+ if (s == null)
+ s = "null";
+ int len = s.length();
+ for (int i = 0; i < len; i++) {
+ char c = s.charAt(i);
+
+ //
+ // XXX NOTE: This is clearly incorrect for many strings,
+ // but is the only consistent approach within the current
+ // servlet framework. It must suffice until servlet output
+ // streams properly encode their output.
+ //
+ if ((c & 0xff00) != 0) { // high order byte must be zero
+ String errMsg = lStrings.getString("err.not_iso8859_1");
+ Object[] errArgs = new Object[1];
+ errArgs[0] = Character.valueOf(c);
+ errMsg = MessageFormat.format(errMsg, errArgs);
+ throw new CharConversionException(errMsg);
+ }
+ write(c);
+ }
+ }
+
+ /**
+ * Writes a boolean
value to the client, with no carriage
+ * return-line feed (CRLF) character at the end.
+ *
+ * @param b
+ * the boolean
value to send to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void print(boolean b) throws IOException {
+ String msg;
+ if (b) {
+ msg = lStrings.getString("value.true");
+ } else {
+ msg = lStrings.getString("value.false");
+ }
+ print(msg);
+ }
+
+ /**
+ * Writes a character to the client, with no carriage return-line feed
+ * (CRLF) at the end.
+ *
+ * @param c
+ * the character to send to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void print(char c) throws IOException {
+ print(String.valueOf(c));
+ }
+
+ /**
+ * Writes an int to the client, with no carriage return-line feed (CRLF) at
+ * the end.
+ *
+ * @param i
+ * the int to send to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void print(int i) throws IOException {
+ print(String.valueOf(i));
+ }
+
+ /**
+ * Writes a long
value to the client, with no carriage
+ * return-line feed (CRLF) at the end.
+ *
+ * @param l
+ * the long
value to send to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void print(long l) throws IOException {
+ print(String.valueOf(l));
+ }
+
+ /**
+ * Writes a float
value to the client, with no carriage
+ * return-line feed (CRLF) at the end.
+ *
+ * @param f
+ * the float
value to send to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void print(float f) throws IOException {
+ print(String.valueOf(f));
+ }
+
+ /**
+ * Writes a double
value to the client, with no carriage
+ * return-line feed (CRLF) at the end.
+ *
+ * @param d
+ * the double
value to send to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void print(double d) throws IOException {
+ print(String.valueOf(d));
+ }
+
+ /**
+ * Writes a carriage return-line feed (CRLF) to the client.
+ *
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void println() throws IOException {
+ print("\r\n");
+ }
+
+ /**
+ * Writes a String
to the client, followed by a carriage
+ * return-line feed (CRLF).
+ *
+ * @param s
+ * the String
to write to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void println(String s) throws IOException {
+ print(s);
+ println();
+ }
+
+ /**
+ * Writes a boolean
value to the client, followed by a carriage
+ * return-line feed (CRLF).
+ *
+ * @param b
+ * the boolean
value to write to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void println(boolean b) throws IOException {
+ print(b);
+ println();
+ }
+
+ /**
+ * Writes a character to the client, followed by a carriage return-line feed
+ * (CRLF).
+ *
+ * @param c
+ * the character to write to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void println(char c) throws IOException {
+ print(c);
+ println();
+ }
+
+ /**
+ * Writes an int to the client, followed by a carriage return-line feed
+ * (CRLF) character.
+ *
+ * @param i
+ * the int to write to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void println(int i) throws IOException {
+ print(i);
+ println();
+ }
+
+ /**
+ * Writes a long
value to the client, followed by a carriage
+ * return-line feed (CRLF).
+ *
+ * @param l
+ * the long
value to write to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void println(long l) throws IOException {
+ print(l);
+ println();
+ }
+
+ /**
+ * Writes a float
value to the client, followed by a carriage
+ * return-line feed (CRLF).
+ *
+ * @param f
+ * the float
value to write to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void println(float f) throws IOException {
+ print(f);
+ println();
+ }
+
+ /**
+ * Writes a double
value to the client, followed by a carriage
+ * return-line feed (CRLF).
+ *
+ * @param d
+ * the double
value to write to the client
+ * @exception IOException
+ * if an input or output exception occurred
+ */
+ public void println(double d) throws IOException {
+ print(d);
+ println();
+ }
+
+ /**
+ * Checks if a non-blocking write will succeed. If this returns
+ * false
, it will cause a callback to
+ * {@link WriteListener#onWritePossible()} when the buffer has emptied. If
+ * this method returns false
no further data must be written
+ * until the contain calls {@link WriteListener#onWritePossible()}.
+ *
+ * @return true
if data can be written, else false
+ *
+ * @since Servlet 3.1
+ */
+ public abstract boolean isReady();
+
+ /**
+ * Sets the {@link WriteListener} for this {@link ServletOutputStream} and
+ * thereby switches to non-blocking IO. It is only valid to switch to
+ * non-blocking IO within async processing or HTTP upgrade processing.
+ *
+ * @param listener The non-blocking IO write listener
+ *
+ * @throws IllegalStateException If this method is called if neither
+ * async nor HTTP upgrade is in progress or
+ * if the {@link WriteListener} has already
+ * been set
+ * @throws NullPointerException If listener is null
+ *
+ * @since Servlet 3.1
+ */
+ public abstract void setWriteListener(javax.servlet.WriteListener listener);
+}