Package net.shibboleth.shared.primitive

# Class StringSupport

java.lang.Object
net.shibboleth.shared.primitive.StringSupport

public final class StringSupport extends Object
String utility methods.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`private`
`StringSupport()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`static Boolean`
`booleanOf(String what)`
Null/empty preserving conversion from xs:boolean to `Boolean`.
`static String`
`inputStreamToString(InputStream input, CharsetDecoder decoder)`
Reads an input stream into a string.
`static String`
`listToStringValue(List<?> values, String delimiter)`
Converts a List of objects into a single string, with values separated by a specified delimiter.
`static Collection<String>`
`normalizeStringCollection(Collection<String> values)`
Normalize a string collection by: Safely trimming each member. Converting all empty members to null. Removing any null members.
`static List<String>`
`stringToList(String string, String delimiter)`
Converts a delimited string into a list.
`static String`
`trim(String s)`
Safely trims a string.
`static String`
`trimOrNull(String s)`
Safely trims a string and, if empty, converts it to null.

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

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

## Constructor Details

### StringSupport

private StringSupport()
Constructor.

## Method Details

### inputStreamToString

@Nonnull public static String inputStreamToString(@Nonnull InputStream input, @Nullable CharsetDecoder decoder) throws IOException
Reads an input stream into a string. The provided stream is not closed.

Parameters:
  `input` - the input stream to read
  `decoder` - character decoder to use, if null, system default character set is used
Returns:
  the string read from the stream
Throws:
  `IOException` - thrown if there is a problem reading from the stream and decoding it

### listToStringValue

@Nonnull public static String listToStringValue(@Nonnull List<?> values, @Nonnull String delimiter)
Converts a List of objects into a single string, with values separated by a specified delimiter.

Parameters:
  `values` - list of objects
  `delimiter` - the delimiter used between values
Returns:
  delimited string of values

### stringToList

@Nonnull public static List<String> stringToList(@Nonnull String string, @Nonnull String delimiter)
Converts a delimited string into a list. We cannot use an ungarnished tokenizer since it doesn't add an empty String if the end of the input String was the delimiter. Hence we have to explicitly check.

Parameters:
  `string` - the string to be split into a list
  `delimiter` - the delimiter between values. This string may contain multiple delimiter characters, as allowed by `StringTokenizer`
Returns:
  the list of values or an empty list if the given string is empty

### trim

@Nullable public static String trim(@Nullable String s)
Safely trims a string.

Parameters:
  `s` - the string to trim, may be null
Returns:
  the trimmed string or null if the given string was null

### trimOrNull

@Nullable public static String trimOrNull(@Nullable String s)
Safely trims a string and, if empty, converts it to null.

Parameters:
  `s` - the string to trim, may be null
Returns:
  the trimmed string or null if the given string was null or the trimmed string was empty

### normalizeStringCollection

@Nonnull public static Collection<String> normalizeStringCollection(@Nullable @NullableElements Collection<String> values)
Normalize a string collection by:

1. Safely trimming each member.
2. Converting all empty members to null.
3. Removing any null members.

While the source collection may or may not be ordered, the encounter order of the elements will be maintained in the returned collection, i.e., ordered collections will retain that property.

Parameters:
  `values` - the collection of string values
Returns:
  the normalized collection of string values

### booleanOf

@Nullable public static Boolean booleanOf(@Nullable String what)
Null/empty preserving conversion from xs:boolean to `Boolean`.

Parameters:
  `what` - the string: potentially empty or null
Returns:
  null or the boolean equivalent.