Package org.reflections.vfs
Class Vfs
- java.lang.Object
-
- org.reflections.vfs.Vfs
-
public abstract class Vfs extends Object
a simple virtual file system bridgeuse the
fromURL(java.net.URL)
to get aVfs.Dir
, then useVfs.Dir.getFiles()
to iterate over theVfs.File
for example:
Vfs.Dir dir = Vfs.fromURL(url); Iterable
files = dir.getFiles(); for (Vfs.File file : files) { InputStream is = file.openInputStream(); } fromURL(java.net.URL)
uses staticVfs.DefaultUrlTypes
to resolve URLs. It contains VfsTypes for handling for common resources such as local jar file, local directory, jar url, jar input stream and more.It can be plugged in with other
Vfs.UrlType
usingaddDefaultURLTypes(org.reflections.vfs.Vfs.UrlType)
orsetDefaultURLTypes(java.util.List)
.for example:
Vfs.addDefaultURLTypes(new Vfs.UrlType() { public boolean matches(URL url) { return url.getProtocol().equals("http"); } public Vfs.Dir createDir(final URL url) { return new HttpDir(url); //implement this type... (check out a naive implementation on VfsTest) } }); Vfs.Dir dir = Vfs.fromURL(new URL("http://mirrors.ibiblio.org/pub/mirrors/maven2/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar"));
use
findFiles(java.util.Collection, java.util.function.Predicate)
to get an iteration of files matching given name predicate over given list of urls
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Vfs.DefaultUrlTypes
default url types used byfromURL(java.net.URL)
static interface
Vfs.Dir
an abstract vfs dirstatic interface
Vfs.File
an abstract vfs filestatic interface
Vfs.UrlType
a matcher and factory for a url
-
Constructor Summary
Constructors Constructor Description Vfs()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
addDefaultURLTypes(Vfs.UrlType urlType)
add a static default url types to the beginning of the default url types list.static Iterable<Vfs.File>
findFiles(Collection<URL> inUrls, String packagePrefix, Predicate<String> nameFilter)
return an iterable of allVfs.File
in given urls, starting with given packagePrefix and matching nameFilterstatic Iterable<Vfs.File>
findFiles(Collection<URL> urls, Predicate<Vfs.File> filePredicate)
return an iterable of allVfs.File
in given urls, matching filePredicatestatic Vfs.Dir
fromURL(URL url)
tries to create a Dir from the given url, using the defaultUrlTypesstatic Vfs.Dir
fromURL(URL url, List<Vfs.UrlType> urlTypes)
tries to create a Dir from the given url, using the given urlTypesstatic Vfs.Dir
fromURL(URL url, Vfs.UrlType... urlTypes)
tries to create a Dir from the given url, using the given urlTypesstatic List<Vfs.UrlType>
getDefaultUrlTypes()
the default url types that will be used when issuingfromURL(java.net.URL)
static File
getFile(URL url)
try to getFile
from urlstatic void
setDefaultURLTypes(List<Vfs.UrlType> urlTypes)
sets the static default url types.
-
-
-
Method Detail
-
getDefaultUrlTypes
public static List<Vfs.UrlType> getDefaultUrlTypes()
the default url types that will be used when issuingfromURL(java.net.URL)
-
setDefaultURLTypes
public static void setDefaultURLTypes(List<Vfs.UrlType> urlTypes)
sets the static default url types. can be used to statically plug in urlTypes
-
addDefaultURLTypes
public static void addDefaultURLTypes(Vfs.UrlType urlType)
add a static default url types to the beginning of the default url types list. can be used to statically plug in urlTypes
-
fromURL
public static Vfs.Dir fromURL(URL url)
tries to create a Dir from the given url, using the defaultUrlTypes
-
fromURL
public static Vfs.Dir fromURL(URL url, List<Vfs.UrlType> urlTypes)
tries to create a Dir from the given url, using the given urlTypes
-
fromURL
public static Vfs.Dir fromURL(URL url, Vfs.UrlType... urlTypes)
tries to create a Dir from the given url, using the given urlTypes
-
findFiles
public static Iterable<Vfs.File> findFiles(Collection<URL> inUrls, String packagePrefix, Predicate<String> nameFilter)
return an iterable of allVfs.File
in given urls, starting with given packagePrefix and matching nameFilter
-
findFiles
public static Iterable<Vfs.File> findFiles(Collection<URL> urls, Predicate<Vfs.File> filePredicate)
return an iterable of allVfs.File
in given urls, matching filePredicate
-
-