From 7039a05147b8bbfc829babea1c65bd436450b505 Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Mon, 8 Jan 2007 23:53:00 +0000 Subject: Splitting out songdbj git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11953 a1c6a512-1295-4272-9138-f99709370657 --- songdbj/javazoom/jl/decoder/JavaLayerUtils.java | 207 ------------------------ 1 file changed, 207 deletions(-) delete mode 100644 songdbj/javazoom/jl/decoder/JavaLayerUtils.java (limited to 'songdbj/javazoom/jl/decoder/JavaLayerUtils.java') diff --git a/songdbj/javazoom/jl/decoder/JavaLayerUtils.java b/songdbj/javazoom/jl/decoder/JavaLayerUtils.java deleted file mode 100644 index c9ce3838e5..0000000000 --- a/songdbj/javazoom/jl/decoder/JavaLayerUtils.java +++ /dev/null @@ -1,207 +0,0 @@ -/* - * 11/19/04 1.0 moved to LGPL. - * 12/12/99 Initial version. mdm@techie.com - *----------------------------------------------------------------------- - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as published - * by the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - *---------------------------------------------------------------------- - */ - -package javazoom.jl.decoder; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InvalidClassException; -import java.io.InvalidObjectException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.OutputStream; -import java.lang.reflect.Array; - -/** - * The JavaLayerUtils class is not strictly part of the JavaLayer API. - * It serves to provide useful methods and system-wide hooks. - * - * @author MDM - */ -public class JavaLayerUtils -{ - static private JavaLayerHook hook = null; - - /** - * Deserializes the object contained in the given input stream. - * @param in The input stream to deserialize an object from. - * @param cls The expected class of the deserialized object. - */ - static public Object deserialize(InputStream in, Class cls) - throws IOException - { - if (cls==null) - throw new NullPointerException("cls"); - - Object obj = deserialize(in, cls); - if (!cls.isInstance(obj)) - { - throw new InvalidObjectException("type of deserialized instance not of required class."); - } - - return obj; - } - - /** - * Deserializes an object from the given InputStream. - * The deserialization is delegated to an - * ObjectInputStream instance. - * - * @param in The InputStream to deserialize an object - * from. - * - * @return The object deserialized from the stream. - * @exception IOException is thrown if there was a problem reading - * the underlying stream, or an object could not be deserialized - * from the stream. - * - * @see java.io.ObjectInputStream - */ - static public Object deserialize(InputStream in) - throws IOException - { - if (in==null) - throw new NullPointerException("in"); - - ObjectInputStream objIn = new ObjectInputStream(in); - - Object obj; - - try - { - obj = objIn.readObject(); - } - catch (ClassNotFoundException ex) - { - throw new InvalidClassException(ex.toString()); - } - - return obj; - } - - /** - * Deserializes an array from a given InputStream. - * - * @param in The InputStream to - * deserialize an object from. - * - * @param elemType The class denoting the type of the array - * elements. - * @param length The expected length of the array, or -1 if - * any length is expected. - */ - static public Object deserializeArray(InputStream in, Class elemType, int length) - throws IOException - { - if (elemType==null) - throw new NullPointerException("elemType"); - - if (length<-1) - throw new IllegalArgumentException("length"); - - Object obj = deserialize(in); - - Class cls = obj.getClass(); - - - if (!cls.isArray()) - throw new InvalidObjectException("object is not an array"); - - Class arrayElemType = cls.getComponentType(); - if (arrayElemType!=elemType) - throw new InvalidObjectException("unexpected array component type"); - - if (length != -1) - { - int arrayLength = Array.getLength(obj); - if (arrayLength!=length) - throw new InvalidObjectException("array length mismatch"); - } - - return obj; - } - - static public Object deserializeArrayResource(String name, Class elemType, int length) - throws IOException - { - InputStream str = getResourceAsStream(name); - if (str==null) - throw new IOException("unable to load resource '"+name+"'"); - - Object obj = deserializeArray(str, elemType, length); - - return obj; - } - - static public void serialize(OutputStream out, Object obj) - throws IOException - { - if (out==null) - throw new NullPointerException("out"); - - if (obj==null) - throw new NullPointerException("obj"); - - ObjectOutputStream objOut = new ObjectOutputStream(out); - objOut.writeObject(obj); - - } - - /** - * Sets the system-wide JavaLayer hook. - */ - static synchronized public void setHook(JavaLayerHook hook0) - { - hook = hook0; - } - - static synchronized public JavaLayerHook getHook() - { - return hook; - } - - /** - * Retrieves an InputStream for a named resource. - * - * @param name The name of the resource. This must be a simple - * name, and not a qualified package name. - * - * @return The InputStream for the named resource, or null if - * the resource has not been found. If a hook has been - * provided, its getResourceAsStream() method is called - * to retrieve the resource. - */ - static synchronized public InputStream getResourceAsStream(String name) - { - InputStream is = null; - - if (hook!=null) - { - is = hook.getResourceAsStream(name); - } - else - { - Class cls = JavaLayerUtils.class; - is = cls.getResourceAsStream(name); - } - - return is; - } -} -- cgit v1.2.3