Package org.globus.util
Class GlobusPathMatchingResourcePatternResolver
java.lang.Object
org.globus.util.GlobusPathMatchingResourcePatternResolver
Provides methods to resolve locationPatterns and return GlobusResource
objects which match those location patterns. Supports Ant-Style regular
expressions, where:
** matches any number of directories
? matches one character
* matches any number of characters
Supports file:, classpath:, and relative paths.
Provides similar functionality to spring framework's PathMatchingResourcePatternResolver
3/2/2012
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate String
antToRegexConverter
(String antStyleLocationPattern) Converts an Ant-style pattern to a regex pattern by replacing (.private String
getPathUntilWildcard
(String locationPatternString, boolean defaultToLocaldir) Returns a substring of the locationPattern from the beginning to the first occurrence of * or ? If this is unsuccessful, start at current directory ./getResource
(String location) This method takes a location string and returns a GlobusResource of the corresponding location.getResources
(String locationPattern) Finds all the resources that match the Ant-Style locationPatternprivate void
parseDirectoryStructure
(File currentDirectory, Vector<GlobusResource> pathsMatchingLocationPattern) Recursive variant of parseFilesInDirectory.private void
parseFilesInDirectory
(File currentDirectory, Vector<GlobusResource> pathsMatchingLocationPattern) Compares every file's Absolute Path against the locationPattern, if they match a GlobusResource is created with the file's Absolute Path and added to pathsMatchingLocationPattern.
-
Field Details
-
locationPattern
-
mainClassPath
Path from root directory to the directory at the beginning of a classpath. For example if a class was in a package org.globus.utils.MyClass.java, which had an absolute path of /user/userName/project/resources/org/globus/utils/MyClass.java the mainClassPath would be /user/userName/project/resources/
-
-
Constructor Details
-
GlobusPathMatchingResourcePatternResolver
public GlobusPathMatchingResourcePatternResolver()
-
-
Method Details
-
getResource
This method takes a location string and returns a GlobusResource of the corresponding location. This method does not accept any patterns for the location string.- Parameters:
location
- An absolute or relative location in the style classpath:/folder/className.class, file:/folder/fileName.ext, or folder/folder/fileName.ext- Returns:
- A GlobusResource type object of the corresponding location string.
-
getResources
Finds all the resources that match the Ant-Style locationPattern- Parameters:
locationPattern
- Ant-Style location pattern which may be prefixed with classpath:/, file:/, or describe a relative path.- Returns:
- An array of GlobusResource containing all resources whose locaiton match the locationPattern
-
antToRegexConverter
Converts an Ant-style pattern to a regex pattern by replacing (. with \\.), (? with .), (** with .*), and (* with [^/]*).- Parameters:
antStyleLocationPattern
- An Ant-Stlye location pattern.- Returns:
- A regex style location pattern representation of the antStyleLocationPattern
-
getPathUntilWildcard
Returns a substring of the locationPattern from the beginning to the first occurrence of * or ? If this is unsuccessful, start at current directory ./- Parameters:
locationPatternString
- The Ant-Style location pattern.- Returns:
- A substring of the locationPatternString from the beginning to the first occurrence of a wildcard character
-
parseDirectoryStructure
private void parseDirectoryStructure(File currentDirectory, Vector<GlobusResource> pathsMatchingLocationPattern) Recursive variant of parseFilesInDirectory.- Parameters:
currentDirectory
- The currentDirectory to explore.pathsMatchingLocationPattern
- Holds GlobusResource instances of all the paths which matched the locationPattern
-
parseFilesInDirectory
private void parseFilesInDirectory(File currentDirectory, Vector<GlobusResource> pathsMatchingLocationPattern) Compares every file's Absolute Path against the locationPattern, if they match a GlobusResource is created with the file's Absolute Path and added to pathsMatchingLocationPattern.- Parameters:
currentDirectory
- The directory whose files to parse.pathsMatchingLocationPattern
- Holds GlobusResource instances of all the paths which matched the locationPattern
-