diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/internal/util/io/PDataStream.java')
-rw-r--r-- | bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/internal/util/io/PDataStream.java | 236 |
1 files changed, 0 insertions, 236 deletions
diff --git a/bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/internal/util/io/PDataStream.java b/bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/internal/util/io/PDataStream.java deleted file mode 100644 index bdcff9bbc..000000000 --- a/bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/internal/util/io/PDataStream.java +++ /dev/null @@ -1,236 +0,0 @@ -/******************************************************************************* - * Copyright (c) 1997-2007 by ProSyst Software GmbH - * http://www.prosyst.com - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * ProSyst Software GmbH - initial API and implementation - *******************************************************************************/ -package org.eclipse.equinox.internal.util.io; - -import java.io.*; - -/** - * @author Pavlin Dobrev - * @author Georgi Andreev - * @version 1.0 - */ -public final class PDataStream { - - public static void writeInt(int i, OutputStream os) throws IOException { - os.write((i >>> 24) & 0xFF); - os.write((i >>> 16) & 0xFF); - os.write((i >>> 8) & 0xFF); - os.write(i & 0xFF); - } - - public static void writeLong(long l, OutputStream os) throws IOException { - os.write((int) (l >>> 56) & 0xFF); - os.write((int) (l >>> 48) & 0xFF); - os.write((int) (l >>> 40) & 0xFF); - os.write((int) (l >>> 32) & 0xFF); - os.write((int) (l >>> 24) & 0xFF); - os.write((int) (l >>> 16) & 0xFF); - os.write((int) (l >>> 8) & 0xFF); - os.write((int) (l & 0xFF)); - } - - public static void writeShort(short s, OutputStream os) throws IOException { - os.write((s >>> 8) & 0xFF); - os.write(s & 0xFF); - } - - public static void writeChar(char ch, OutputStream os) throws IOException { - os.write((ch >>> 8) & 0xFF); - os.write(ch & 0xFF); - } - - public static void writeBoolean(boolean b, OutputStream os) throws IOException { - os.write(b ? 1 : 0); - } - - public static void writeByte(byte b, OutputStream os) throws IOException { - os.write(b); - } - - public static void writeBytes(String str, OutputStream os) throws IOException { - byte[] b = str.getBytes(); - os.write(b); - } - - public static void writeString(String str, OutputStream os) throws IOException { - if (str == null) { - writeBoolean(false, os); - } else { - writeBoolean(true, os); - writeUTF(str, os); - } - } - - public static void writeUTF(String str, OutputStream os) throws IOException { - int strlen = str.length(); - int utflen = 0; - for (int i = 0; i < strlen; i++) { - int ch = str.charAt(i); - if ((ch >= 0x0001) && (ch <= 0x007F)) { - utflen++; - } else if (ch > 0x07FF) { - utflen += 3; - } else { - utflen += 2; - } - } - if (utflen > 65535) - throw new UTFDataFormatException(); - os.write((utflen >>> 8) & 0xFF); - os.write(utflen & 0xFF); - for (int i = 0; i < strlen; i++) { - int ch = str.charAt(i); - if ((ch >= 0x0001) && (ch <= 0x007F)) { - os.write(ch); - } else if (ch > 0x07FF) { - os.write(0xE0 | ((ch >> 12) & 0x0F)); - os.write(0x80 | ((ch >> 6) & 0x3F)); - os.write(0x80 | (ch & 0x3F)); - } else { - os.write(0xC0 | ((ch >> 6) & 0x1F)); - os.write(0x80 | (ch & 0x3F)); - } - } - } - - public static void writeChars(String str, OutputStream os) throws IOException { - int len = str.length(); - for (int i = 0; i < len; i++) { - int ch = str.charAt(i); - os.write((ch >>> 8) & 0xFF); - os.write(ch & 0xFF); - } - } - - public static void writeDouble(double d, OutputStream os) throws IOException { - writeLong(Double.doubleToLongBits(d), os); - } - - public static void writeFloat(float f, OutputStream os) throws IOException { - writeInt(Float.floatToIntBits(f), os); - } - - public static int readInt(InputStream is) throws IOException { - int ch1 = is.read(); - int ch2 = is.read(); - int ch3 = is.read(); - int ch4 = is.read(); - if ((ch1 | ch2 | ch3 | ch4) < 0) { - throw new IOException("Read Error"); - } - return (ch1 << 24) | (ch2 << 16) | (ch3 << 8) | ch4; - } - - public static char readChar(InputStream is) throws IOException { - int ch1 = is.read(); - int ch2 = is.read(); - if ((ch1 | ch2) < 0) - throw new IOException("Read Error"); - return (char) ((ch1 << 8) | ch2); - } - - public static short readShort(InputStream is) throws IOException { - int ch1 = is.read(); - int ch2 = is.read(); - if ((ch1 | ch2) < 0) - throw new IOException("Read Error"); - return (short) ((ch1 << 8) | ch2); - } - - public static long readLong(InputStream is) throws IOException { - return ((long) (readInt(is)) << 32) | (readInt(is) & 0xFFFFFFFFL); - } - - public static boolean readBoolean(InputStream is) throws IOException { - int ch = is.read(); - if (ch < 0) { - throw new EOFException(); - } - return (ch != 0); - } - - public static byte readByte(InputStream is) throws IOException { - int ch = is.read(); - if (ch < 0) - throw new EOFException(); - return (byte) (ch); - } - - public static int readUnsignedByte(InputStream is) throws IOException { - int ch = is.read(); - if (ch < 0) - throw new EOFException(); - return ch; - } - - public static double readDouble(InputStream is) throws IOException { - return Double.longBitsToDouble(readLong(is)); - } - - public static float readFloat(InputStream is) throws IOException { - return Float.intBitsToFloat(readInt(is)); - } - - public static String readString(InputStream is) throws IOException { - if (readBoolean(is)) - return readUTF(is); - return null; - } - - public static String readUTF(InputStream is) throws IOException { - int utflen = readShort(is); - char str[] = new char[utflen]; - int cnt = 0; - int strlen = 0; - while (cnt < utflen) { - int c = readUnsignedByte(is); - int char2, char3; - switch (c >> 4) { - case 0 : - case 1 : - case 2 : - case 3 : - case 4 : - case 5 : - case 6 : - case 7 : - cnt++; - str[strlen++] = (char) c; - break; - case 12 : - case 13 : - cnt += 2; - if (cnt > utflen) - throw new UTFDataFormatException(); - char2 = readUnsignedByte(is); - if ((char2 & 0xC0) != 0x80) - throw new UTFDataFormatException(); - str[strlen++] = (char) (((c & 0x1F) << 6) | (char2 & 0x3F)); - break; - case 14 : - cnt += 3; - if (cnt > utflen) - throw new UTFDataFormatException(); - char2 = readUnsignedByte(is); - char3 = readUnsignedByte(is); - if (((char2 & 0xC0) != 0x80) || ((char3 & 0xC0) != 0x80)) - throw new UTFDataFormatException(); - str[strlen++] = (char) (((c & 0x0F) << 12) | ((char2 & 0x3F) << 6) | (char3 & 0x3F)); - break; - default : - throw new UTFDataFormatException(); - } - } - return new String(str, 0, strlen); - } - -} |