Class GlobusPathMatchingResourcePatternResolver

java.lang.Object
org.globus.util.GlobusPathMatchingResourcePatternResolver

public class GlobusPathMatchingResourcePatternResolver extends Object
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 Details

    • locationPattern

      private Pattern locationPattern
    • mainClassPath

      private String 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

      public GlobusResource getResource(String location)
      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

      public GlobusResource[] getResources(String locationPattern)
      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

      private String antToRegexConverter(String antStyleLocationPattern)
      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

      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 ./
      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