# Class UrlParser

java.lang.Object
org.mariadb.jdbc.UrlParser

All Implemented Interfaces:
  `Cloneable`

public class UrlParser extends Object implements Cloneable
parse and verification of URL.

basic syntax :
`jdbc:(mysql|mariadb):[replication:|failover|loadbalance:|aurora:]//<hostDescription>[,<hostDescription>]/[database>] [?<key1>=<value1>[&<key2>=<value2>]]`

hostDescription:
- simple :
`<host>:<portnumber>`
(for example localhost:3306)
- complex :
`address=[(type=(master|replica))][(port=<portnumber>)](host=<host>)`
type is by default master
port is by default 3306

host can be dns name, ipv4 or ipv6.
in case of ipv6 and simple host description, the ip must be written inside bracket.
example : `jdbc:mariadb://[2001:0660:7401:0200:0000:0000:0edf:bdd7]:3306`

Some examples :
`jdbc:mariadb://localhost:3306/database?user=greg&password=pass`
`jdbc:mariadb://address=(type=master)(host=master1),address=(port=3307)(type=replica)(host=replica1)/database?user=greg&password=pass`

## Constructor Summary

Constructors
Constructor
Description
`UrlParser(String database, List<HostAddress> addresses, Options options, HaMode haMode)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`static boolean`
`acceptsUrl(String url)`
Tell if mariadb driver accept url string.
`UrlParser`
`auroraPipelineQuirks()`
Permit setting parameters not forced.
`Object`
`clone()`
`boolean`
`equals(Object parser)`
`CredentialPlugin`
`getCredentialPlugin()`
`String`
`getDatabase()`
`HaMode`
`getHaMode()`
`List<HostAddress>`
`getHostAddresses()`
`String`
`getInitialUrl()`
`Options`
`getOptions()`
`String`
`getPassword()`
`String`
`getUsername()`
`int`
`hashCode()`
`boolean`
`isMultiMaster()`
`static UrlParser`
`parse(String url)`
`static UrlParser`
`parse(String url, Properties prop)`
Parse url connection string with additional properties.
`void`
`parseUrl(String url)`
Parse url connection string.
`void`
`setDatabase(String database)`
`void`
`setPassword(String password)`
`protected void`
`setProperties(String urlParameters)`
`void`
`setUsername(String username)`
`String`
`toString()`
ToString implementation.

### Methods inherited from class Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

## Constructor Details

### UrlParser

public UrlParser(String database, List<HostAddress> addresses, Options options, HaMode haMode) throws SQLException
Constructor.

Parameters:
  `database` - database
  `addresses` - list of hosts
  `options` - connection option
  `haMode` - High availability mode
Throws:
  `SQLException` - if credential plugin cannot be loaded

## Method Details

### acceptsUrl

public static boolean acceptsUrl(String url)
Tell if mariadb driver accept url string. (Correspond to interface java.jdbc.Driver.acceptsURL() method)

Parameters:
  `url` - url String
Returns:
  true if url string correspond.

### parse

public static UrlParser parse(String url) throws SQLException

Throws:
  `SQLException`

### parse

public static UrlParser parse(String url, Properties prop) throws SQLException
Parse url connection string with additional properties.

Parameters:
  `url` - connection string
  `prop` - properties
Returns:
  UrlParser instance
Throws:
  `SQLException` - if parsing exception occur

### auroraPipelineQuirks

public UrlParser auroraPipelineQuirks()
Permit setting parameters not forced. if options useBatchMultiSend and usePipelineAuth are not explicitly set in connection string, value will default to true or false according if aurora detection.

Returns:
  UrlParser for easy testing

### parseUrl

public void parseUrl(String url) throws SQLException
Parse url connection string.

Parameters:
  `url` - connection string
Throws:
  `SQLException` - if url format is incorrect

### getUsername

public String getUsername()

### setUsername

public void setUsername(String username)

### getPassword

public String getPassword()

### setPassword

public void setPassword(String password)

### getDatabase

public String getDatabase()

### setDatabase

public void setDatabase(String database)

### getHostAddresses

public List<HostAddress> getHostAddresses()

### getOptions

public Options getOptions()

### setProperties

protected void setProperties(String urlParameters)

### getCredentialPlugin

public CredentialPlugin getCredentialPlugin()

### toString

public String toString()
ToString implementation.

Overrides:
  `toString` in class `Object`
Returns:
  String value

### getInitialUrl

public String getInitialUrl()

### getHaMode

public HaMode getHaMode()

### equals

public boolean equals(Object parser)

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### isMultiMaster

public boolean isMultiMaster()

### clone

public Object clone() throws CloneNotSupportedException

Overrides:
  `clone` in class `Object`
Throws:
  `CloneNotSupportedException`