Class UriParser

java.lang.Object
org.apache.commons.vfs2.provider.UriParser

public final class UriParser extends Object
Utilities for dealing with URIs. See RFC 2396 for details.
  • Field Details

    • TRANS_SEPARATOR

      public static final char TRANS_SEPARATOR
      The set of valid separators. These are all converted to the normalized one. Does not contain the normalized separator
      See Also:
  • Method Details

    • appendEncoded

      public static void appendEncoded(StringBuilder buffer, String unencodedValue, char[] reserved)
      Encodes and appends a string to a StringBuilder.
      Parameters:
      buffer - The StringBuilder to append to.
      unencodedValue - The String to encode and append.
      reserved - characters to encode.
    • canonicalizePath

      public static void canonicalizePath(StringBuilder buffer, int offset, int length, FileNameParser fileNameParser) throws FileSystemException
      Canonicalizes a path.
      Parameters:
      buffer - Source data.
      offset - Where to start reading.
      length - How much to read.
      fileNameParser - Now to encode and decode.
      Throws:
      FileSystemException - If an I/O error occurs.
    • checkUriEncoding

      public static void checkUriEncoding(String uri) throws FileSystemException
      Decodes the String.
      Parameters:
      uri - The String to decode.
      Throws:
      FileSystemException - if an error occurs.
    • decode

      public static String decode(String encodedStr) throws FileSystemException
      Removes %nn encodings from a string.
      Parameters:
      encodedStr - The encoded String.
      Returns:
      The decoded String.
      Throws:
      FileSystemException - if an error occurs.
    • decode

      public static void decode(StringBuilder buffer, int offset, int length) throws FileSystemException
      Removes %nn encodings from a string.
      Parameters:
      buffer - StringBuilder containing the string to decode.
      offset - The position in the string to start decoding.
      length - The number of characters to decode.
      Throws:
      FileSystemException - if an error occurs.
    • encode

      public static String encode(String decodedStr)
      Converts "special" characters to their %nn value.
      Parameters:
      decodedStr - The decoded String.
      Returns:
      The encoded String.
    • encode

      public static String encode(String decodedStr, char[] reserved)
      Converts "special" characters to their %nn value.
      Parameters:
      decodedStr - The decoded String.
      reserved - Characters to encode.
      Returns:
      The encoded String
    • encode

      public static String[] encode(String[] strings)
      Encode an array of Strings.
      Parameters:
      strings - The array of Strings to encode.
      Returns:
      An array of encoded Strings.
    • encode

      public static void encode(StringBuilder buffer, int offset, int length, char[] reserved)
      Encodes a set of reserved characters in a StringBuilder, using the URI %nn encoding. Always encodes % characters.
      Parameters:
      buffer - The StringBuilder to append to.
      offset - The position in the buffer to start encoding at.
      length - The number of characters to encode.
      reserved - characters to encode.
    • extractFirstElement

      Extracts the first element of a path.
      Parameters:
      name - StringBuilder containing the path.
      Returns:
      The first element of the path.
    • extractQueryString

      public static String extractQueryString(StringBuilder name)
      Extract the query String from the URI.
      Parameters:
      name - StringBuilder containing the URI.
      Returns:
      The query string, if any. null otherwise.
    • extractScheme

      @Deprecated public static String extractScheme(String uri)
      Deprecated.
      Use instead extractScheme(java.lang.String). Will be removed in 3.0.
      Extracts the scheme from a URI.
      Parameters:
      uri - The URI.
      Returns:
      The scheme name. Returns null if there is no scheme.
    • extractScheme

      @Deprecated public static String extractScheme(String uri, StringBuilder buffer)
      Deprecated.
      Use instead extractScheme(java.lang.String). Will be removed in 3.0.
      Extracts the scheme from a URI. Removes the scheme and ':' delimiter from the front of the URI.
      Parameters:
      uri - The URI.
      buffer - Returns the remainder of the URI.
      Returns:
      The scheme name. Returns null if there is no scheme.
    • extractScheme

      public static String extractScheme(String[] schemes, String uri)
      Extracts the scheme from a URI. Removes the scheme and ':' delimiter from the front of the URI.

      The scheme is extracted based on the currently supported schemes in the system. That is to say the schemes supported by the registered providers.

      This allows us to handle varying scheme's without making assumptions based on the ':' character. Specifically handle scheme extraction calls for URI parameters that are not actually uri's, but may be names with ':' in them.

      Parameters:
      schemes - The schemes to check.
      uri - The potential URI. May also be a name.
      Returns:
      The scheme name. Returns null if there is no scheme.
      Since:
      2.3
    • extractScheme

      public static String extractScheme(String[] schemes, String uri, StringBuilder buffer)
      Extracts the scheme from a URI. Removes the scheme and ':' delimiter from the front of the URI.

      The scheme is extracted based on the given set of schemes. Normally, that is to say the schemes supported by the registered providers.

      This allows us to handle varying scheme's without making assumptions based on the ':' character. Specifically handle scheme extraction calls for URI parameters that are not actually URI's, but may be names with ':' in them.

      Parameters:
      schemes - The schemes to check.
      uri - The potential URI. May also just be a name.
      buffer - Returns the remainder of the URI.
      Returns:
      The scheme name. Returns null if there is no scheme.
      Since:
      2.3
    • fixSeparators

      public static boolean fixSeparators(StringBuilder name)
      Normalises the separators in a name.
      Parameters:
      name - The StringBuilder containing the name
      Returns:
      true if the StringBuilder was modified.
    • normalisePath

      Normalises a path. Does the following:
      • Removes empty path elements.
      • Handles '.' and '..' elements.
      • Removes trailing separator.
      Its assumed that the separators are already fixed.
      Parameters:
      path - The path to normalize.
      Returns:
      The FileType.
      Throws:
      FileSystemException - if an error occurs.
      See Also: