org.apache.mina.proxy.utils

## Class StringUtilities

- java.lang.Object
- - org.apache.mina.proxy.utils.StringUtilities

-     public class StringUtilities
      extends Object

  StringUtilities.java - Various methods to handle strings.
  Since:
    MINA 2.0.0-M3
  Author:
    Apache MINA Project

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `StringUtilities()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `addValueToHeader(Map<String,List<String>> headers, String key, String value, boolean singleValued)` Adds an header to the provided map of headers.
    `static String` | `copyDirective(HashMap<String,String> src, HashMap<String,String> dst, String directive)` Copy the directive from the source map to the destination map, if it's value isn't null.
    `static void` | `copyDirective(HashMap<String,String> directives, StringBuilder sb, String directive)` Copy the directive to the `StringBuilder` if not null.
    `static String` | `getDirectiveValue(HashMap<String,String> directivesMap, String directive, boolean mandatory)` A directive is a parameter of the digest authentication process.
    `static String` | `getSingleValuedHeader(Map<String,List<String>> headers, String key)` Returns the value of the named header.
    `static boolean` | `isLws(byte b)` Is character a linear white space ? LWS = [CRLF] 1*( SP | HT ) Note that we're checking individual bytes instead of CRLF
    `static HashMap<String,String>` | `parseDirectives(byte[] buf)` Parses digest-challenge string, extracting each token and value(s).
    `static String` | `stringTo8859_1(String str)` Used to convert username-value, passwd or realm to 8859_1 encoding if all chars in string are within the 8859_1 (Latin 1) encoding range.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### StringUtilities

          public StringUtilities()

  - ### Method Detail

    - #### getDirectiveValue

          public static String getDirectiveValue(HashMap<String,String> directivesMap,
                                 String directive,
                                 boolean mandatory)
                                          throws AuthenticationException

      A directive is a parameter of the digest authentication process. Returns the value of a directive from the map. If mandatory is true and the value is null, then it throws an `AuthenticationException`.
      Parameters:
        `directivesMap` - the directive's map
        `directive` - the name of the directive we want to retrieve
        `mandatory` - is the directive mandatory
      Returns:
        the mandatory value as a String
      Throws:
        `AuthenticationException` - if mandatory is true and if directivesMap.get(directive) == null

    - #### copyDirective

          public static void copyDirective(HashMap<String,String> directives,
                           StringBuilder sb,
                           String directive)

      Copy the directive to the `StringBuilder` if not null. (A directive is a parameter of the digest authentication process.)
      Parameters:
        `directives` - the directives map
        `sb` - the output buffer
        `directive` - the directive name to look for

    - #### copyDirective

          public static String copyDirective(HashMap<String,String> src,
                             HashMap<String,String> dst,
                             String directive)

      Copy the directive from the source map to the destination map, if it's value isn't null. (A directive is a parameter of the digest authentication process.)
      Parameters:
        `src` - the source map
        `dst` - the destination map
        `directive` - the directive name
      Returns:
        the value of the copied directive

    - #### parseDirectives

          public static HashMap<String,String> parseDirectives(byte[] buf)
                                                        throws SaslException

      Parses digest-challenge string, extracting each token and value(s). Each token is a directive.
      Parameters:
        `buf` - A non-null digest-challenge string.
      Throws:
        `UnsupportedEncodingException`
        `SaslException` - if the String cannot be parsed according to RFC 2831

    - #### isLws

          public static boolean isLws(byte b)

      Is character a linear white space ? LWS = [CRLF] 1*( SP | HT ) Note that we're checking individual bytes instead of CRLF
      Parameters:
        `b` - the byte to check
      Returns:
        `true` if it's a linear white space

    - #### stringTo8859_1

          public static String stringTo8859_1(String str)
                                       throws UnsupportedEncodingException

      Used to convert username-value, passwd or realm to 8859_1 encoding if all chars in string are within the 8859_1 (Latin 1) encoding range.
      Parameters:
        `str` - a non-null String
      Returns:
        a non-null String containing the 8859_1 encoded string
      Throws:
        `AuthenticationException`
        `UnsupportedEncodingException`

    - #### getSingleValuedHeader

          public static String getSingleValuedHeader(Map<String,List<String>> headers,
                                     String key)

      Returns the value of the named header. If it has multiple values then an `IllegalArgumentException` is thrown
      Parameters:
        `headers` - the http headers map
        `key` - the key of the header
      Returns:
        the value of the http header

    - #### addValueToHeader

          public static void addValueToHeader(Map<String,List<String>> headers,
                              String key,
                              String value,
                              boolean singleValued)

      Adds an header to the provided map of headers.
      Parameters:
        `headers` - the http headers map
        `key` - the name of the new header to add
        `value` - the value of the added header
        `singleValued` - if true and the map already contains one value then it is replaced by the new value. Otherwise it simply adds a new value to this multi-valued header.

Copyright © 2004-2012 Apache MINA Project. All Rights Reserved.