Package davmail.util

Class StringUtil

java.lang.Object
davmail.util.StringUtil

public final class StringUtil extends Object
Various string handling methods
  • Method Details

    • getToken

      public static String getToken(String value, String startDelimiter, String endDelimiter)
      Return the sub string between startDelimiter and endDelimiter or null.
      Parameters:
      value - String value
      startDelimiter - start delimiter
      endDelimiter - end delimiter
      Returns:
      token value
    • getLastToken

      public static String getLastToken(String value, String startDelimiter, String endDelimiter)
      Return the sub string between startDelimiter and endDelimiter or null, look for last token in string.
      Parameters:
      value - String value
      startDelimiter - start delimiter
      endDelimiter - end delimiter
      Returns:
      token value
    • replaceToken

      public static String replaceToken(String value, String startDelimiter, String endDelimiter, String newToken)
      Return the sub string between startDelimiter and endDelimiter with newToken.
      Parameters:
      value - String value
      startDelimiter - start delimiter
      endDelimiter - end delimiter
      newToken - new token value
      Returns:
      token value
    • join

      public static String join(Set<String> values, String separator)
      Join values with given separator.
      Parameters:
      values - value set
      separator - separator
      Returns:
      joined values
    • xmlEncode

      public static String xmlEncode(String name)
      Xml encode content.
      Parameters:
      name - decoded name
      Returns:
      name encoded name
    • xmlEncodeAttribute

      public static String xmlEncodeAttribute(String name)
      Xml encode inside attribute.
      Parameters:
      name - decoded name
      Returns:
      name encoded name
    • xmlDecode

      public static String xmlDecode(String name)
      Need to decode XML for iCal
      Parameters:
      name - encoded name
      Returns:
      name decoded name
    • base64ToHex

      public static String base64ToHex(String value)
      Convert base64 value to hex.
      Parameters:
      value - base64 value
      Returns:
      hex value
    • hexToBase64

      public static String hexToBase64(String value) throws org.apache.commons.codec.DecoderException
      Convert hex value to base64.
      Parameters:
      value - hex value
      Returns:
      base64 value
      Throws:
      org.apache.commons.codec.DecoderException - on error
    • encodeUrlcompname

      public static String encodeUrlcompname(String value)
      Encode item name to get actual value stored in urlcompname MAPI property.
      Parameters:
      value - decoded value
      Returns:
      urlcompname encoded value
    • decodeUrlcompname

      public static String decodeUrlcompname(String urlcompname)
      Decode urlcompname to get item name.
      Parameters:
      urlcompname - encoded value
      Returns:
      decoded value
    • encodePlusSign

      public static String encodePlusSign(String value)
      Urlencode plus sign in encoded href. '+' is decoded as ' ' by URIUtil.decode, the workaround is to force urlencoding to '%2B' first
      Parameters:
      value - encoded href
      Returns:
      encoded href
    • base64ToUrl

      public static String base64ToUrl(String value)
      Encode EWS base64 itemId to url compatible value.
      Parameters:
      value - base64 value
      Returns:
      url compatible value
    • urlToBase64

      public static String urlToBase64(String value)
      Encode EWS url compatible itemId back to base64 value.
      Parameters:
      value - url compatible value
      Returns:
      base64 value
    • davSearchEncode

      public static String davSearchEncode(String value)
      Encode quotes in Dav search parameter.
      Parameters:
      value - search parameter
      Returns:
      escaped value
    • escapeQuotes

      public static String escapeQuotes(String value)
      Escape quotes for DAV and graph filters.
      Parameters:
      value - input value
      Returns:
      quoted result
    • escapeDoubleQuotes

      public static String escapeDoubleQuotes(String value)
      Backslash escape double guotes in provided string.
      Parameters:
      value - input string
      Returns:
      escaped string
    • convertZuluDateTimeToAllDay

      public static String convertZuluDateTimeToAllDay(String value)
      Get allDay date value from Zulu timestamp.
      Parameters:
      value - Zulu datetime
      Returns:
      yyyyMMdd allDay date value
    • parseQuotedImapString

      public static String parseQuotedImapString(String quoted) throws ParseException
      Takes a quoted string according to IMAP rfc 3501 and returns its intrinsic (unquoted) string value.

      RFC 3501 defines a quoted string in its ABNF as follows:

           quoted          = DQUOTE *QUOTED-CHAR DQUOTE
           DQUOTE          = %x22
                             ; " (Double Quote)
           QUOTED-CHAR     = <any TEXT-CHAR except quoted-specials> /
                             "\" quoted-specials / UTF8-2 / UTF8-3 / UTF8-4
           TEXT-CHAR       = <any CHAR except CR and LF>
           quoted-specials = DQUOTE / "\"
       
      Parameters:
      quoted - the quoted string or null
      Returns:
      the unquoted string, or null if-and-only-if `quoted` was null
      Throws:
      IllegalArgumentException - when the given quoted string is not valid
      ParseException
    • removeQuotes

      public static String removeQuotes(String value)
      Remove quotes if present on value.
      Parameters:
      value - input value
      Returns:
      unquoted string
    • decodeFolderName

      public static String decodeFolderName(String folderName)
      Decode the folder name with _xF8FF_ or _x003E_ characters.
      Parameters:
      folderName - encoded folder name
      Returns:
      decoded folder name
    • encodeFolderName

      public static String encodeFolderName(String folderName)
      folderName may contain / or > characters, encode them.
      Parameters:
      folderName - folder name to encode
      Returns:
      encoded folder name