From 0537cb4775839be812a6ee36fab36766f8ea0083 Mon Sep 17 00:00:00 2001 From: Marcin Olawski Date: Sun, 8 Feb 2015 16:09:08 +0100 Subject: [PATCH] Add ByteArrayOutputStream.writeTo(OutputStream), UTFDataFormatException and Modifier.isTransient(int). --- classpath/java/io/ByteArrayOutputStream.java | 22 +++++++++++++++++++ classpath/java/io/UTFDataFormatException.java | 21 ++++++++++++++++++ classpath/java/lang/reflect/Modifier.java | 1 + 3 files changed, 44 insertions(+) create mode 100644 classpath/java/io/UTFDataFormatException.java diff --git a/classpath/java/io/ByteArrayOutputStream.java b/classpath/java/io/ByteArrayOutputStream.java index 264e32833a..7aceb4b718 100644 --- a/classpath/java/io/ByteArrayOutputStream.java +++ b/classpath/java/io/ByteArrayOutputStream.java @@ -98,6 +98,28 @@ public class ByteArrayOutputStream extends OutputStream { return array; } + public synchronized void writeTo(OutputStream out) throws IOException { + if (length==0) + return; + + flushBuffer(); + + int cnt = 0; + for (Cell c = chain; c != null; c = c.next) { + cnt++; + } + + Cell[] cellArray = new Cell[cnt]; + + for (Cell c = chain; c != null; c = c.next) { + cellArray[--cnt] = c; + } + + for (Cell c : cellArray){ + out.write(c.array, c.offset, c.length); + } + } + @Override public String toString() { return new String(toByteArray()); diff --git a/classpath/java/io/UTFDataFormatException.java b/classpath/java/io/UTFDataFormatException.java new file mode 100644 index 0000000000..7938bbf6b0 --- /dev/null +++ b/classpath/java/io/UTFDataFormatException.java @@ -0,0 +1,21 @@ +/* Copyright (c) 2008-2015, Avian Contributors + + Permission to use, copy, modify, and/or distribute this software + for any purpose with or without fee is hereby granted, provided + that the above copyright notice and this permission notice appear + in all copies. + + There is NO WARRANTY for this software. See license.txt for + details. */ + +package java.io; + +public class UTFDataFormatException extends IOException { + public UTFDataFormatException(String s) { + super(s); + } + + public UTFDataFormatException() { + super(); + } +} diff --git a/classpath/java/lang/reflect/Modifier.java b/classpath/java/lang/reflect/Modifier.java index 5d2ff22eef..c5451b1983 100644 --- a/classpath/java/lang/reflect/Modifier.java +++ b/classpath/java/lang/reflect/Modifier.java @@ -32,6 +32,7 @@ public final class Modifier { public static boolean isProtected(int v) { return (v & PROTECTED) != 0; } public static boolean isStatic (int v) { return (v & STATIC) != 0; } public static boolean isFinal (int v) { return (v & FINAL) != 0; } + public static boolean isTransient(int v) { return (v & TRANSIENT) != 0; } public static boolean isSuper (int v) { return (v & SUPER) != 0; } public static boolean isNative (int v) { return (v & NATIVE) != 0; } public static boolean isAbstract (int v) { return (v & ABSTRACT) != 0; }