Package edu.umd.cs.findbugs.ba
Class URLClassPath
- java.lang.Object
-
- edu.umd.cs.findbugs.ba.URLClassPath
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.AutoCloseable
public class URLClassPath extends java.lang.Object implements java.lang.AutoCloseable, java.io.SerializableA work-alike class to use instead of BCEL's ClassPath class. The main difference is that URLClassPath can load classfiles from URLs.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static interfaceURLClassPath.EntryInterface describing a single classpath entry.private static classURLClassPath.LocalArchiveEntryClasspath entry class to load files from a zip/jar file in the local filesystem.private static classURLClassPath.LocalDirectoryEntryClasspath entry class to load files from a directory in the local filesystem.private static classURLClassPath.RemoteArchiveEntryClasspath entry class to load files from a remote archive URL.private static classURLClassPath.RemoteDirectoryEntryClasspath entry class to load files from a remote directory URL.
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set<java.lang.String>classesThatCantBeFoundprivate java.util.List<URLClassPath.Entry>entryListprivate static longserialVersionUID
-
Constructor Summary
Constructors Constructor Description URLClassPath()Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddURL(java.lang.String fileName)Add given filename/URL to the classpath.voidclose()Close all underlying resources.java.lang.StringgetClassPath()Return the classpath string.static java.lang.StringgetFileExtension(java.lang.String fileName)Get the file extension of given fileName.private java.io.InputStreamgetInputStreamForResource(java.lang.String resourceName)Open a stream to read given resource.static java.lang.StringgetURLProtocol(java.lang.String urlString)Get the URL protocol of given URL string.static booleanisArchiveExtension(java.lang.String fileExtension)Determine if given file extension indicates an archive file.org.apache.bcel.classfile.JavaClasslookupClass(java.lang.String className)Look up a class from the classpath.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
entryList
private final java.util.List<URLClassPath.Entry> entryList
-
classesThatCantBeFound
private final java.util.Set<java.lang.String> classesThatCantBeFound
-
-
Method Detail
-
addURL
public void addURL(java.lang.String fileName) throws java.io.IOExceptionAdd given filename/URL to the classpath. If no URL protocol is given, the filename is assumed to be a local file or directory. Remote directories must be specified with a "/" character at the end of the URL.- Parameters:
fileName- filename or URL of codebase (directory or archive file)- Throws:
java.io.IOException- if entry is invalid or does not exist
-
getClassPath
public java.lang.String getClassPath()
Return the classpath string.- Returns:
- the classpath string
-
getInputStreamForResource
private java.io.InputStream getInputStreamForResource(java.lang.String resourceName)
Open a stream to read given resource.- Parameters:
resourceName- name of resource to load, e.g. "java/lang/Object.class"- Returns:
- input stream to read resource, or null if resource could not be found
- Throws:
java.io.IOException- if an IO error occurs trying to determine whether or not the resource exists
-
lookupClass
public org.apache.bcel.classfile.JavaClass lookupClass(java.lang.String className) throws java.lang.ClassNotFoundExceptionLook up a class from the classpath.- Parameters:
className- name of class to look up- Returns:
- the JavaClass object for the class
- Throws:
java.lang.ClassNotFoundException- if the class couldn't be found
-
close
public void close()
Close all underlying resources.- Specified by:
closein interfacejava.lang.AutoCloseable
-
getURLProtocol
public static java.lang.String getURLProtocol(java.lang.String urlString)
Get the URL protocol of given URL string.- Parameters:
urlString- the URL string- Returns:
- the protocol name ("http", "file", etc.), or null if there is no protocol
-
getFileExtension
public static java.lang.String getFileExtension(java.lang.String fileName)
Get the file extension of given fileName.- Returns:
- the file extension, or null if there is no file extension
-
isArchiveExtension
public static boolean isArchiveExtension(java.lang.String fileExtension)
Determine if given file extension indicates an archive file.- Parameters:
fileExtension- the file extension (e.g., ".jar")- Returns:
- true if the file extension indicates an archive, false otherwise
-
-