1919 *
2020 * @author Tobias Nyholm <tobias.nyholm@gmail.com>
2121 */
22- final class LocationBuilder
22+ final class AddressBuilder
2323{
24+ /**
25+ * @var string
26+ */
27+ private $ providedBy ;
28+
2429 /**
2530 * @var Coordinates|null
2631 */
@@ -76,26 +81,35 @@ final class LocationBuilder
7681 */
7782 private $ timezone ;
7883
84+ /**
85+ * @param string $providedBy
86+ */
87+ public function __construct (string $ providedBy )
88+ {
89+ $ this ->providedBy = $ providedBy ;
90+ }
91+
7992 /**
8093 * @param string $class
8194 *
82- * @return Location
95+ * @return Address
8396 */
8497 public function build ($ class = Address::class)
8598 {
86- if (!is_a ($ class , Location ::class, true )) {
87- throw new \LogicException ('First parameter to LocationBuilder::build must be a class name implementing Geocoder\Location ' );
99+ if (!is_a ($ class , Address ::class, true )) {
100+ throw new \LogicException ('First parameter to LocationBuilder::build must be a class name extending Geocoder\Model\Address ' );
88101 }
89102
90103 return new $ class (
104+ $ this ->providedBy ,
105+ new AdminLevelCollection ($ this ->adminLevels ),
91106 $ this ->coordinates ,
92107 $ this ->bounds ,
93108 $ this ->streetNumber ,
94109 $ this ->streetName ,
95110 $ this ->postalCode ,
96111 $ this ->locality ,
97112 $ this ->subLocality ,
98- new AdminLevelCollection ($ this ->adminLevels ),
99113 new Country ($ this ->country , $ this ->countryCode ),
100114 $ this ->timezone
101115 );
@@ -107,7 +121,7 @@ public function build($class = Address::class)
107121 * @param float $north
108122 * @param float $east
109123 *
110- * @return LocationBuilder
124+ * @return AddressBuilder
111125 */
112126 public function setBounds ($ south , $ west , $ north , $ east )
113127 {
@@ -124,7 +138,7 @@ public function setBounds($south, $west, $north, $east)
124138 * @param float $latitude
125139 * @param float $longitude
126140 *
127- * @return LocationBuilder
141+ * @return AddressBuilder
128142 */
129143 public function setCoordinates ($ latitude , $ longitude )
130144 {
@@ -142,7 +156,7 @@ public function setCoordinates($latitude, $longitude)
142156 * @param string $name
143157 * @param string $code
144158 *
145- * @return LocationBuilder
159+ * @return AddressBuilder
146160 */
147161 public function addAdminLevel ($ level , $ name , $ code )
148162 {
@@ -154,7 +168,7 @@ public function addAdminLevel($level, $name, $code)
154168 /**
155169 * @param null|string $streetNumber
156170 *
157- * @return LocationBuilder
171+ * @return AddressBuilder
158172 */
159173 public function setStreetNumber ($ streetNumber )
160174 {
@@ -166,7 +180,7 @@ public function setStreetNumber($streetNumber)
166180 /**
167181 * @param null|string $streetName
168182 *
169- * @return LocationBuilder
183+ * @return AddressBuilder
170184 */
171185 public function setStreetName ($ streetName )
172186 {
@@ -178,7 +192,7 @@ public function setStreetName($streetName)
178192 /**
179193 * @param null|string $locality
180194 *
181- * @return LocationBuilder
195+ * @return AddressBuilder
182196 */
183197 public function setLocality ($ locality )
184198 {
@@ -190,7 +204,7 @@ public function setLocality($locality)
190204 /**
191205 * @param null|string $postalCode
192206 *
193- * @return LocationBuilder
207+ * @return AddressBuilder
194208 */
195209 public function setPostalCode ($ postalCode )
196210 {
@@ -202,7 +216,7 @@ public function setPostalCode($postalCode)
202216 /**
203217 * @param null|string $subLocality
204218 *
205- * @return LocationBuilder
219+ * @return AddressBuilder
206220 */
207221 public function setSubLocality ($ subLocality )
208222 {
@@ -214,7 +228,7 @@ public function setSubLocality($subLocality)
214228 /**
215229 * @param array $adminLevels
216230 *
217- * @return LocationBuilder
231+ * @return AddressBuilder
218232 */
219233 public function setAdminLevels ($ adminLevels )
220234 {
@@ -226,7 +240,7 @@ public function setAdminLevels($adminLevels)
226240 /**
227241 * @param null|string $country
228242 *
229- * @return LocationBuilder
243+ * @return AddressBuilder
230244 */
231245 public function setCountry ($ country )
232246 {
@@ -238,7 +252,7 @@ public function setCountry($country)
238252 /**
239253 * @param null|string $countryCode
240254 *
241- * @return LocationBuilder
255+ * @return AddressBuilder
242256 */
243257 public function setCountryCode ($ countryCode )
244258 {
@@ -250,7 +264,7 @@ public function setCountryCode($countryCode)
250264 /**
251265 * @param null|string $timezone
252266 *
253- * @return LocationBuilder
267+ * @return AddressBuilder
254268 */
255269 public function setTimezone ($ timezone )
256270 {
0 commit comments