Class RESTUtil
- java.lang.Object
-
- org.apache.iceberg.rest.RESTUtil
-
public class RESTUtil extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static org.apache.iceberg.relocated.com.google.common.base.Joiner
NAMESPACE_JOINER
static org.apache.iceberg.relocated.com.google.common.base.Splitter
NAMESPACE_SPLITTER
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.util.Map<java.lang.String,java.lang.String>
decodeFormData(java.lang.String formString)
Decodes a map of form data from application/x-www-form-urlencoded.static Namespace
decodeNamespace(java.lang.String encodedNs)
Takes in a string representation of a namespace as used for a URL parameter and returns the corresponding namespace.static java.lang.String
decodeString(java.lang.String encoded)
Decodes a URL-encoded string.static java.lang.String
encodeFormData(java.util.Map<?,?> formData)
Encodes a map of form data as application/x-www-form-urlencoded.static java.lang.String
encodeNamespace(Namespace ns)
Returns a String representation of a namespace that is suitable for use in a URL / URI.static java.lang.String
encodeString(java.lang.String toEncode)
Encodes a string using URL encodingstatic java.util.Map<java.lang.String,java.lang.String>
extractPrefixMap(java.util.Map<java.lang.String,java.lang.String> properties, java.lang.String prefix)
Takes in a map, and returns a copy filtered on the entries with keys beginning with the designated prefix.static java.util.Map<java.lang.String,java.lang.String>
merge(java.util.Map<java.lang.String,java.lang.String> target, java.util.Map<java.lang.String,java.lang.String> updates)
Merge updates into a target string map.static java.lang.String
stripTrailingSlash(java.lang.String path)
-
-
-
Method Detail
-
stripTrailingSlash
public static java.lang.String stripTrailingSlash(java.lang.String path)
-
merge
public static java.util.Map<java.lang.String,java.lang.String> merge(java.util.Map<java.lang.String,java.lang.String> target, java.util.Map<java.lang.String,java.lang.String> updates)
Merge updates into a target string map.- Parameters:
target
- a map to updateupdates
- a map of updates- Returns:
- an immutable result map built from target and updates
-
extractPrefixMap
public static java.util.Map<java.lang.String,java.lang.String> extractPrefixMap(java.util.Map<java.lang.String,java.lang.String> properties, java.lang.String prefix)
Takes in a map, and returns a copy filtered on the entries with keys beginning with the designated prefix. The keys are returned with the prefix removed.Any entries whose keys don't begin with the prefix are not returned.
This can be used to get a subset of the configuration related to the REST catalog, such as all properties from a prefix of `spark.sql.catalog.my_catalog.rest.` to get REST catalog specific properties from the spark configuration.
-
encodeFormData
public static java.lang.String encodeFormData(java.util.Map<?,?> formData)
Encodes a map of form data as application/x-www-form-urlencoded.This encodes the form with pairs separated by & and keys separated from values by =.
- Parameters:
formData
- a map of form data- Returns:
- a String of encoded form data
-
decodeFormData
public static java.util.Map<java.lang.String,java.lang.String> decodeFormData(java.lang.String formString)
Decodes a map of form data from application/x-www-form-urlencoded.This decodes the form with pairs separated by & and keys separated from values by =.
- Parameters:
formString
- a map of form data- Returns:
- a map of key/value form data
-
encodeString
public static java.lang.String encodeString(java.lang.String toEncode)
Encodes a string using URL encodingdecodeString(String)
should be used to decode.- Parameters:
toEncode
- string to encode- Returns:
- UTF-8 encoded string, suitable for use as a URL parameter
-
decodeString
public static java.lang.String decodeString(java.lang.String encoded)
Decodes a URL-encoded string.See also
encodeString(String)
for URL encoding.- Parameters:
encoded
- a string to decode- Returns:
- a decoded string
-
encodeNamespace
public static java.lang.String encodeNamespace(Namespace ns)
Returns a String representation of a namespace that is suitable for use in a URL / URI.This function needs to be called when a namespace is used as a path variable (or query parameter etc.), to format the namespace per the spec.
decodeNamespace(java.lang.String)
should be used to parse the namespace from a URL parameter.- Parameters:
ns
- namespace to encode- Returns:
- UTF-8 encoded string representing the namespace, suitable for use as a URL parameter
-
decodeNamespace
public static Namespace decodeNamespace(java.lang.String encodedNs)
Takes in a string representation of a namespace as used for a URL parameter and returns the corresponding namespace.See also
encodeNamespace(org.apache.iceberg.catalog.Namespace)
for generating correctly formatted URLs.- Parameters:
encodedNs
- a namespace to decode- Returns:
- a namespace
-
-