Package io.github.zero88.utils
Class Urls
- java.lang.Object
-
- io.github.zero88.utils.Urls
-
public final class Urls extends java.lang.ObjectURL Utilities.- Since:
- 1.0.0
- See Also:
- [RFC 1738] Uniform Resource Locators, BNF URL schema, Character encoding
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringAUTHORITY_PATTERNAuthority syntax.static java.lang.StringCAPTURE_PARAMPrefix capture paramstatic java.lang.StringFRAGMENT_SEP_CHARURL Fragment separator character.static java.lang.StringHOST_PATTERNstatic java.lang.StringPATH_PATTERNPath syntax.static java.lang.StringPATH_SEP_CHARURL Path separator character.static java.lang.StringQUERY_SEP_CHARURL Query separator character.static java.lang.StringURL_PATTERNURL syntax.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.StringbuildURL(HttpScheme scheme, java.lang.String host, int port)Build a complete URL.static java.lang.StringbuildURL(java.lang.String url, java.lang.String query)Build a complete URL.static java.lang.StringbuildURL(java.lang.String url, java.lang.String query, java.lang.String fragment)Build a complete URL.static java.lang.StringcapturePath(@NotNull java.lang.String path, java.lang.String... params)Construct a capture path from the static pathstatic java.lang.StringcapturePatternPath(@NotNull java.lang.String path, java.lang.String... params)Construct a capture path from the pattern path.static java.lang.StringcombinePath(java.lang.String... path)static java.lang.Stringdecode(java.lang.String encoded)Decode encoded text for human readable.static java.lang.Stringencode(java.lang.String plain)Encode plain text inUTF-8encoding and follow standardization format.static java.lang.Stringnormalize(java.lang.String url)static java.lang.StringoptimizeURL(java.lang.String base, java.lang.String path)Optimize URL with validation and normalize forward splash (/).static java.lang.StringtoCapture(java.lang.String param)static java.lang.StringtoLowercasePath(@NotNull java.lang.String text)static booleanvalidateHost(java.lang.String url)Validate URL.static booleanvalidatePath(java.lang.String path)Validate URL Path.static booleanvalidateURL(java.lang.String url)Validate URL.
-
-
-
Field Detail
-
HOST_PATTERN
public static final java.lang.String HOST_PATTERN
- See Also:
- Constant Field Values
-
AUTHORITY_PATTERN
public static final java.lang.String AUTHORITY_PATTERN
Authority syntax.- See Also:
- Authority syntax, Constant Field Values
-
PATH_PATTERN
public static final java.lang.String PATH_PATTERN
Path syntax.- See Also:
- Path syntax, Constant Field Values
-
URL_PATTERN
public static final java.lang.String URL_PATTERN
URL syntax. In this application case, anyqueryorfragmentwill be not accepted.- See Also:
- URL syntax, Constant Field Values
-
PATH_SEP_CHAR
public static final java.lang.String PATH_SEP_CHAR
URL Path separator character.- See Also:
- Constant Field Values
-
QUERY_SEP_CHAR
public static final java.lang.String QUERY_SEP_CHAR
URL Query separator character.- See Also:
- Constant Field Values
-
FRAGMENT_SEP_CHAR
public static final java.lang.String FRAGMENT_SEP_CHAR
URL Fragment separator character.- See Also:
- Constant Field Values
-
CAPTURE_PARAM
public static final java.lang.String CAPTURE_PARAM
Prefix capture param- See Also:
- Constant Field Values
-
-
Method Detail
-
optimizeURL
public static java.lang.String optimizeURL(java.lang.String base, java.lang.String path)Optimize URL with validation and normalize forward splash (/).- Parameters:
base- First segment, typically isURLpath- Second segment, typically isPath- Returns:
- String combination of base and path that conforms to
URLsyntax
-
validateHost
public static boolean validateHost(java.lang.String url)
Validate URL.- Parameters:
url- String to serialize- Returns:
Trueif given input is valid URL syntax, otherwiseFalse- See Also:
URL_PATTERN
-
validateURL
public static boolean validateURL(java.lang.String url)
Validate URL.- Parameters:
url- String to serialize- Returns:
Trueif given input is valid URL syntax, otherwiseFalse- See Also:
URL_PATTERN
-
validatePath
public static boolean validatePath(java.lang.String path)
Validate URL Path.- Parameters:
path- String to serialize- Returns:
Trueif given input is valid URL syntax, otherwiseFalse- See Also:
PATH_PATTERN
-
combinePath
public static java.lang.String combinePath(java.lang.String... path)
-
normalize
public static java.lang.String normalize(java.lang.String url)
-
buildURL
public static java.lang.String buildURL(HttpScheme scheme, java.lang.String host, int port)
Build a complete URL.- Parameters:
scheme- HTTP Schemehost- Hostport- Port. Port < 1 will be skipped- Returns:
- URL based on given input. Nullable if given host is blank
-
buildURL
public static java.lang.String buildURL(java.lang.String url, java.lang.String query)Build a complete URL.- Parameters:
url- Base URL with pathquery- Encode query- Returns:
- URL based on given input
- Throws:
java.lang.IllegalArgumentException- ifurlis null or empty
-
buildURL
public static java.lang.String buildURL(java.lang.String url, java.lang.String query, java.lang.String fragment)Build a complete URL.- Parameters:
url- Base URL with pathquery- Encode queryfragment- Encode fragment- Returns:
- URL based on given input
- Throws:
java.lang.IllegalArgumentException- ifurlis null or empty
-
encode
public static java.lang.String encode(java.lang.String plain)
Encode plain text inUTF-8encoding and follow standardization format.- Parameters:
plain- text to encode- Returns:
- Encoded value
- See Also:
- Percent encoding, Reserved Characters, Unreserved Characters, When to Encode or Decode
-
decode
public static java.lang.String decode(java.lang.String encoded)
Decode encoded text for human readable.- Parameters:
encoded- Encoded value to decode- Returns:
- Plain text
-
capturePath
public static java.lang.String capturePath(@NotNull @NotNull java.lang.String path, java.lang.String... params)Construct a capture path from the static pathFor example:
/catalogue/products/:product_type/:product_id- Parameters:
path- Pathparams- list of param name- Returns:
- the capture path
- See Also:
capturePatternPath(String, String...)
-
capturePatternPath
public static java.lang.String capturePatternPath(@NotNull @NotNull java.lang.String path, java.lang.String... params)Construct a capture path from the pattern path. For example:/points/{0}/type/{1}- Parameters:
path- Pattern pathparams- list of param name- Returns:
- capture path
-
toLowercasePath
public static java.lang.String toLowercasePath(@NotNull @NotNull java.lang.String text)
-
toCapture
public static java.lang.String toCapture(java.lang.String param)
-
-