001 /* PAVLOV -- Multiple Choice Study System
002 * Copyright (C) 2000 - 2004 T.J. Willis
003 *
004 * This program is free software; you can redistribute it and/or
005 * modify it under the terms of the GNU General Public License
006 * as published by the Free Software Foundation; either version 2
007 * of the License, or (at your option) any later version.
008 *
009 * This program is distributed in the hope that it will be useful,
010 * but WITHOUT ANY WARRANTY; without even the implied warranty of
011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
012 * GNU General Public License for more details.
013 *
014 * You should have received a copy of the GNU General Public License
015 * along with this program; if not, write to the Free Software
016 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
017 *
018 * $Header: /cvsroot/pavlov/net/sourceforge/pavlov/zipUtilities/JarUtilities.java,v 1.2 2004/07/01 05:50:21 tj_willis Exp $
019 */
020 package net.sourceforge.pavlov.zipUtilities;
021
022 import java.util.zip.ZipEntry;
023 import java.io.File;
024 import java.net.*;
025 import org.apache.log4j.*;
026
027 //FIXED: add to CVS
028
029 public class JarUtilities {
030
031 /**
032 * Return true if it looks like a JAR file.
033 */
034 public static boolean isAJar(final File g) {
035 // FIXME: logic can be improved on
036 if(g==null)
037 return false;
038 String gg = g.getName();
039 if(gg==null)
040 return false;
041 if(gg.endsWith(".jar"))
042 return true;
043 if(gg.endsWith(".JAR"))
044 return true;
045 if(gg.endsWith(".Jar"))
046 return true;
047 if(gg.indexOf('!')>0)
048 return true;
049 return false;
050 }
051
052 public static boolean isInAJar(final File f) {
053 // FIXME: logic can be improved on
054 String x = f.getAbsolutePath(); //directory
055 if(x.indexOf('!')>0)
056 return true;
057 return false;
058 }
059
060 public static boolean isInAJar(final URL url) {
061 // FIXME: logic can be improved on
062 if(url==null)
063 return false;
064 String bar = url.toString();
065 if(bar==null)
066 return false;
067 //FIXME: if url.getProtocol().equals("jar")
068 if(bar.startsWith("jar:file:"))
069 return true;
070 return false;
071 }
072
073
074 public static URL makeJarURL(final String jarFile, final String entry)
075 throws MalformedURLException {
076 String s = "jar:file:" + jarFile +"!/" + entry;
077 return new URL(s);
078 }
079
080 public static String getJarFileName(final String jarURL) {
081 String foo = new String(jarURL);
082 int y0 = foo.indexOf('!');
083 if(y0>0) {
084 String bb = foo.substring(0,y0);
085 foo = bb;
086
087 }
088 y0 = foo.indexOf(':');
089 if(y0>0) {
090 String bb = foo.substring(y0+1);
091 foo = bb;
092
093 }
094 return foo;
095 }
096
097 }