1<?php
2
3namespace OAuth\Common\Http\Uri;
4
5interface UriInterface
6{
7    /**
8     * @return string
9     */
10    public function getScheme();
11
12    /**
13     * @param string $scheme
14     */
15    public function setScheme($scheme);
16
17    /**
18     * @return string
19     */
20    public function getHost();
21
22    /**
23     * @param string $host
24     */
25    public function setHost($host);
26
27    /**
28     * @return int
29     */
30    public function getPort();
31
32    /**
33     * @param int $port
34     */
35    public function setPort($port);
36
37    /**
38     * @return string
39     */
40    public function getPath();
41
42    /**
43     * @param string $path
44     */
45    public function setPath($path);
46
47    /**
48     * @return string
49     */
50    public function getQuery();
51
52    /**
53     * @param string $query
54     */
55    public function setQuery($query);
56
57    /**
58     * Adds a param to the query string.
59     *
60     * @param string $var
61     * @param string $val
62     */
63    public function addToQuery($var, $val);
64
65    /**
66     * @return string
67     */
68    public function getFragment();
69
70    /**
71     * Should return URI user info, masking protected user info data according to rfc3986-3.2.1
72     *
73     * @return string
74     */
75    public function getUserInfo();
76
77    /**
78     * @param string $userInfo
79     */
80    public function setUserInfo($userInfo);
81
82    /**
83     * Should return the URI Authority, masking protected user info data according to rfc3986-3.2.1
84     *
85     * @return string
86     */
87    public function getAuthority();
88
89    /**
90     * Should return the URI string, masking protected user info data according to rfc3986-3.2.1
91     *
92     * @return string the URI string with user protected info masked
93     */
94    public function __toString();
95
96    /**
97     * Should return the URI Authority without masking protected user info data
98     *
99     * @return string
100     */
101    public function getRawAuthority();
102
103    /**
104     * Should return the URI user info without masking protected user info data
105     *
106     * @return string
107     */
108    public function getRawUserInfo();
109
110    /**
111     * Build the full URI based on all the properties
112     *
113     * @return string The full URI without masking user info
114     */
115    public function getAbsoluteUri();
116
117    /**
118     * Build the relative URI based on all the properties
119     *
120     * @return string The relative URI
121     */
122    public function getRelativeUri();
123
124    /**
125     * @return bool
126     */
127    public function hasExplicitTrailingHostSlash();
128
129    /**
130     * @return bool
131     */
132    public function hasExplicitPortSpecified();
133}
134