src/main/java/com/bytebybyte/google/geocoding/service/request/GeocodeRequestBuilder.java
public GeocodeRequestBuilder componenets(Map<String, String> components) {
		StringBuffer filters = new StringBuffer();
		for (Iterator<Map.Entry<String, String>> iterator = components
				.entrySet().iterator(); iterator.hasNext();) {
			Map.Entry<String, String> entry = iterator.next();
			filters.append(entry.getKey() + ":" + entry.getValue() != null ? entry
					.getValue().replace(' ', '+') : entry.getValue());
			if (iterator.hasNext())
				filters.append("|");
		}
		parameters.put("components", filters.toString());
		return this;
	}
public GeocodeRequestBuilder componenets(Map<String, String> components) {
		StringBuffer filters = new StringBuffer();
		for (Iterator<Map.Entry<String, String>> iterator = components
				.entrySet().iterator(); iterator.hasNext();) {
			Map.Entry<String, String> entry = iterator.next();
			filters.append(entry.getKey() + ":" + entry.getValue() != null ? entry
					.getValue().replace(' ', '+') : entry.getValue());
			if (iterator.hasNext())
				filters.append("|");
		}
		parameters.put("components", filters.toString());
		return this;
	}
public GeocodeRequestBuilder componenets ( Map < String , String > components ) { StringBuffer filters = new StringBuffer ( ) ; for ( Iterator < Map . Entry < String , String > > iterator = components . entrySet ( ) . iterator ( ) ; iterator . hasNext ( ) ; ) { Map . Entry < String , String > entry = iterator . next ( ) ; filters . append ( entry . getKey ( ) + ":" + entry . getValue ( ) != null ? entry . getValue ( ) . replace ( ' ' , ' ' ) : entry . getValue ( ) ) ; if ( iterator . hasNext ( ) ) filters . append ( "|" ) ; } parameters . put ( "components" , filters . toString ( ) ) ; return this ; }
In a geocoding response, the Google Geocoding API can return address
results restricted to a specific area.

The restriction is specified using the components filter.

A filter consists of a list of component:value pairs separated by a pipe
(|). Only the results that match all the filters will be returned.

Filter values support the same methods of spelling correction and partial
matching as other geocoding requests. If a geocoding result is a partial
match for a component filter it will contain a partial_match field in the
response.

The components that can be filtered include:

route: matches long or short name of a route.

locality: matches against both locality and sublocality types.

administrative_area: matches all the administrative_area levels.

postal_code: matches postal_code and postal_code_prefix.

country: matches a country name or a two letter ISO 3166-1 country code.

Note: Each address component can only be specified either in the address
parameter or as a component filter, but not both. Doing so may result in
ZERO_RESULTS.

Countries and administrative areas of level 1 are exempted from this.

@param components
@return GeocodeRequestBuilder
In a geocoding response the Google Geocoding API can return address results restricted to a specific area .