Class 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 encoding
      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.
      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)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • NAMESPACE_JOINER

        public static final org.apache.iceberg.relocated.com.google.common.base.Joiner NAMESPACE_JOINER
      • NAMESPACE_SPLITTER

        public static final org.apache.iceberg.relocated.com.google.common.base.Splitter NAMESPACE_SPLITTER
    • 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 update
        updates - 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 encoding

        decodeString(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