0001    //
0002    //  ConfigProtocol.swift
0003    //  pelias-ios-sdk
0004    //
0005    //  Created by Matt on 12/2/15.
0006    //  Copyright © 2015 Mapzen. All rights reserved.
0007    //
0008    
0009    import Foundation
0010    
0011    struct SearchBoundaryRect
ConfigProtocol.swift:21
func ==(lhs: SearchBoundaryRect, rhs: SearchBoundaryRect) -> Bool {
ConfigProtocol.swift:21
func ==(lhs: SearchBoundaryRect, rhs: SearchBoundaryRect) -> Bool {
ConfigProtocol.swift:111
  var boundaryRect: SearchBoundaryRect? { get set }
PeliasSearchConfigObject.swift:51
  var boundaryRect: SearchBoundaryRect? {
: Equatable { 0012 let minLatLong
ConfigProtocol.swift:16
    self.minLatLong = minLatLong
ConfigProtocol.swift:22
  return ((lhs.minLatLong == rhs.minLatLong) && (lhs.maxLatLong == rhs.maxLatLong))
ConfigProtocol.swift:22
  return ((lhs.minLatLong == rhs.minLatLong) && (lhs.maxLatLong == rhs.maxLatLong))
PeliasSearchConfigObject.swift:54
        appendQueryItem("boundary.rect.min_lat", value: String(rect.minLatLong.latitude))
PeliasSearchConfigObject.swift:55
        appendQueryItem("boundary.rect.min_lon", value: String(rect.minLatLong.longitude))
: GeoPoint 0013 let maxLatLong
ConfigProtocol.swift:17
    self.maxLatLong = maxLatLong
ConfigProtocol.swift:22
  return ((lhs.minLatLong == rhs.minLatLong) && (lhs.maxLatLong == rhs.maxLatLong))
ConfigProtocol.swift:22
  return ((lhs.minLatLong == rhs.minLatLong) && (lhs.maxLatLong == rhs.maxLatLong))
PeliasSearchConfigObject.swift:56
        appendQueryItem("boundary.rect.max_lat", value: String(rect.maxLatLong.latitude))
PeliasSearchConfigObject.swift:57
        appendQueryItem("boundary.rect.max_lon", value: String(rect.maxLatLong.longitude))
: GeoPoint 0014 0015 init(minLatLong: GeoPoint, maxLatLong: GeoPoint) { 0016 self.minLatLong = minLatLong 0017 self.maxLatLong = maxLatLong 0018 } 0019 } 0020 0021 func ==(lhs: SearchBoundaryRect, rhs: SearchBoundaryRect) -> Bool { 0022 return ((lhs.minLatLong == rhs.minLatLong) && (lhs.maxLatLong == rhs.maxLatLong)) 0023 } 0024 0025 struct SearchBoundaryCircle
ConfigProtocol.swift:35
func ==(lhs: SearchBoundaryCircle, rhs: SearchBoundaryCircle) -> Bool {
ConfigProtocol.swift:35
func ==(lhs: SearchBoundaryCircle, rhs: SearchBoundaryCircle) -> Bool {
ConfigProtocol.swift:112
  var boundaryCircle: SearchBoundaryCircle? { get set }
PeliasSearchConfigObject.swift:62
  var boundaryCircle: SearchBoundaryCircle? {
: Equatable { 0026 let center
ConfigProtocol.swift:30
    self.center = center
ConfigProtocol.swift:36
  return (lhs.radius == rhs.radius && lhs.center == rhs.center)
ConfigProtocol.swift:36
  return (lhs.radius == rhs.radius && lhs.center == rhs.center)
PeliasSearchConfigObject.swift:65
        appendQueryItem("boundary.cirle.lat", value: String(circle.center.latitude))
PeliasSearchConfigObject.swift:66
        appendQueryItem("boundary.circle.lon", value: String(circle.center.longitude))
: GeoPoint 0027 let radius
ConfigProtocol.swift:31
    self.radius = radius
ConfigProtocol.swift:36
  return (lhs.radius == rhs.radius && lhs.center == rhs.center)
ConfigProtocol.swift:36
  return (lhs.radius == rhs.radius && lhs.center == rhs.center)
PeliasSearchConfigObject.swift:67
        appendQueryItem("boundary.circle.radius", value: String(circle.radius))
: Double 0028 0029 init(center: GeoPoint, radius: Double) { 0030 self.center = center 0031 self.radius = radius 0032 } 0033 } 0034 0035 func ==(lhs: SearchBoundaryCircle, rhs: SearchBoundaryCircle) -> Bool { 0036 return (lhs.radius == rhs.radius && lhs.center == rhs.center) 0037 } 0038 0039 struct GeoPoint
ConfigProtocol.swift:12
  let minLatLong: GeoPoint
ConfigProtocol.swift:13
  let maxLatLong: GeoPoint
ConfigProtocol.swift:15
  init(minLatLong: GeoPoint, maxLatLong: GeoPoint) {
ConfigProtocol.swift:15
  init(minLatLong: GeoPoint, maxLatLong: GeoPoint) {
ConfigProtocol.swift:26
  let center: GeoPoint
ConfigProtocol.swift:29
  init(center: GeoPoint, radius: Double) {
ConfigProtocol.swift:49
func ==(lhs: GeoPoint, rhs: GeoPoint) -> Bool {
ConfigProtocol.swift:49
func ==(lhs: GeoPoint, rhs: GeoPoint) -> Bool {
ConfigProtocol.swift:103
  var focusPoint: GeoPoint { get set }
ConfigProtocol.swift:108
  var focusPoint: GeoPoint? { get set }
ConfigProtocol.swift:118
  var point: GeoPoint { get set }
PeliasAutocompleteConfig.swift:13
  var focusPoint: GeoPoint {
PeliasAutocompleteConfig.swift:39
  init(searchText: String, focusPoint: GeoPoint, completionHandler: (PeliasResponse) -> Void){
PeliasReverseGeoConfig.swift:26
  var point: GeoPoint {
PeliasReverseGeoConfig.swift:66
  init(point: GeoPoint, completionHandler: (PeliasResponse) -> Void){
PeliasSearchConfigObject.swift:72
  var focusPoint: GeoPoint? {
: Equatable { 0040 let latitude
ConfigProtocol.swift:44
    self.latitude = latitude
ConfigProtocol.swift:50
  return ((lhs.longitude == rhs.longitude) && (lhs.latitude == rhs.latitude))
ConfigProtocol.swift:50
  return ((lhs.longitude == rhs.longitude) && (lhs.latitude == rhs.latitude))
PeliasAutocompleteConfig.swift:15
      appendQueryItem("focus.point.lat", value: String(focusPoint.latitude))
PeliasAutocompleteConfig.swift:48
      appendQueryItem("focus.point.lat", value: String(focusPoint.latitude))
PeliasReverseGeoConfig.swift:28
      appendQueryItem("point.lat", value: String(point.latitude))
PeliasReverseGeoConfig.swift:72
      appendQueryItem("point.lat", value: String(point.latitude))
PeliasSearchConfigObject.swift:54
        appendQueryItem("boundary.rect.min_lat", value: String(rect.minLatLong.latitude))
PeliasSearchConfigObject.swift:56
        appendQueryItem("boundary.rect.max_lat", value: String(rect.maxLatLong.latitude))
PeliasSearchConfigObject.swift:65
        appendQueryItem("boundary.cirle.lat", value: String(circle.center.latitude))
PeliasSearchConfigObject.swift:75
        appendQueryItem("focus.point.lat", value: String(point.latitude))
: Double 0041 let longitude
ConfigProtocol.swift:45
    self.longitude = longitude
ConfigProtocol.swift:50
  return ((lhs.longitude == rhs.longitude) && (lhs.latitude == rhs.latitude))
ConfigProtocol.swift:50
  return ((lhs.longitude == rhs.longitude) && (lhs.latitude == rhs.latitude))
PeliasAutocompleteConfig.swift:16
      appendQueryItem("focus.point.lon", value: String(focusPoint.longitude))
PeliasAutocompleteConfig.swift:49
      appendQueryItem("focus.point.lon", value: String(focusPoint.longitude))
PeliasReverseGeoConfig.swift:29
      appendQueryItem("point.lon", value: String(point.longitude))
PeliasReverseGeoConfig.swift:73
      appendQueryItem("point.lon", value: String(point.longitude))
PeliasSearchConfigObject.swift:55
        appendQueryItem("boundary.rect.min_lon", value: String(rect.minLatLong.longitude))
PeliasSearchConfigObject.swift:57
        appendQueryItem("boundary.rect.max_lon", value: String(rect.maxLatLong.longitude))
PeliasSearchConfigObject.swift:66
        appendQueryItem("boundary.circle.lon", value: String(circle.center.longitude))
PeliasSearchConfigObject.swift:76
        appendQueryItem("focus.point.lon", value: String(point.longitude))
: Double 0042 0043 init(latitude: Double, longitude: Double) { 0044 self.latitude = latitude 0045 self.longitude = longitude 0046 } 0047 } 0048 0049 func ==(lhs: GeoPoint, rhs: GeoPoint) -> Bool { 0050 return ((lhs.longitude == rhs.longitude) && (lhs.latitude == rhs.latitude)) 0051 } 0052 0053 enum SearchSource
ConfigProtocol.swift:59
  static func dataSourceString(sourceList: [SearchSource]) -> String {
ConfigProtocol.swift:113
  var dataSources: [SearchSource]? { get set }
ConfigProtocol.swift:120
  var dataSources: [SearchSource]? { get set }
ConfigProtocol.swift:131
  var dataSource: SearchSource { get set }
PeliasPlaceConfig.swift:63
  var dataSource: SearchSource
PeliasPlaceConfig.swift:66
  init(placeId: String, dataSource: SearchSource, layer: LayerFilter) {
PeliasReverseGeoConfig.swift:54
        appendQueryItem("sources", value: SearchSource.dataSourceString(sources))
PeliasReverseGeoConfig.swift:51
  var dataSources: [SearchSource]? {
PeliasSearchConfigObject.swift:84
        appendQueryItem("sources", value: SearchSource.dataSourceString(sources))
PeliasSearchConfigObject.swift:81
  var dataSources: [SearchSource]? {
: String { 0054 case OpenStreetMap = "osm" 0055 case OpenAddresses = "oa" 0056 case Quattroshapes = "qs" 0057 case GeoNames = "gn" 0058 0059 static func dataSourceString
PeliasReverseGeoConfig.swift:54
        appendQueryItem("sources", value: SearchSource.dataSourceString(sources))
PeliasSearchConfigObject.swift:84
        appendQueryItem("sources", value: SearchSource.dataSourceString(sources))
(sourceList: [SearchSource]) -> String { 0060 return sourceList.map{$0.rawValue}.joinWithSeparator(",") 0061 } 0062 } 0063 0064 enum LayerFilter
ConfigProtocol.swift:67
  static func layerString(layers: [LayerFilter]) -> String {
ConfigProtocol.swift:114
  var layers: [LayerFilter]? { get set }
ConfigProtocol.swift:122
  var layers: [LayerFilter]? { get set }
ConfigProtocol.swift:132
  var layer: LayerFilter { get set }
PeliasPlaceConfig.swift:64
  var layer: LayerFilter
PeliasPlaceConfig.swift:66
  init(placeId: String, dataSource: SearchSource, layer: LayerFilter) {
PeliasReverseGeoConfig.swift:62
        appendQueryItem("layers", value: LayerFilter.layerString(layerArray))
PeliasReverseGeoConfig.swift:59
  var layers: [LayerFilter]? {
PeliasSearchConfigObject.swift:92
        appendQueryItem("layers", value: LayerFilter.layerString(layerArray))
PeliasSearchConfigObject.swift:89
  var layers: [LayerFilter]? {
: String { 0065 case venue, address, country, region, county, locality, localadmin, neighbourhood, coarse 0066 0067 static func layerString
PeliasReverseGeoConfig.swift:62
        appendQueryItem("layers", value: LayerFilter.layerString(layerArray))
PeliasSearchConfigObject.swift:92
        appendQueryItem("layers", value: LayerFilter.layerString(layerArray))
(layers: [LayerFilter]) -> String { 0068 return layers.map{$0.rawValue}.joinWithSeparator(",") 0069 } 0070 } 0071 0072 protocol APIConfigData
ConfigProtocol.swift:82
extension APIConfigData {
ConfigProtocol.swift:98
protocol GenericSearchAPIConfigData : APIConfigData {
ConfigProtocol.swift:117
protocol ReverseAPIConfigData: APIConfigData {
ConfigProtocol.swift:125
protocol PlaceAPIConfigData: APIConfigData {
PeliasSearchManager.swift:51
  private func executeOperation(config: APIConfigData) -> PeliasOperation {
PeliasSearchManager.swift:98
  let config: APIConfigData
PeliasSearchManager.swift:100
  init(config: APIConfigData) {
{ 0073 var urlEndpoint
ConfigProtocol.swift:92
    let urlComponents = NSURLComponents(URL: urlEndpoint, resolvingAgainstBaseURL: true)
: NSURL { get } 0074 var apiKey: String? { get } 0075 var queryItems
ConfigProtocol.swift:86
      queryItems[name] = queryItem;
ConfigProtocol.swift:93
    urlComponents?.queryItems = Array(queryItems.values)
: [String:NSURLQueryItem] { get set } 0076 var completionHandler
PeliasSearchManager.swift:117
        self.config.completionHandler(searchResponse)
: (PeliasResponse) -> Void { get set } 0077 0078 func searchUrl
PeliasSearchManager.swift:108
    NSURLSession.sharedSession().dataTaskWithURL(config.searchUrl()) { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
() -> NSURL 0079 mutating func appendQueryItem(name: String, value: String?) 0080 } 0081 0082 extension APIConfigData { 0083 mutating func appendQueryItem
PeliasAutocompleteConfig.swift:15
      appendQueryItem("focus.point.lat", value: String(focusPoint.latitude))
PeliasAutocompleteConfig.swift:16
      appendQueryItem("focus.point.lon", value: String(focusPoint.longitude))
PeliasAutocompleteConfig.swift:23
      appendQueryItem("text", value: searchText)
PeliasAutocompleteConfig.swift:30
        appendQueryItem("api_key", value: key)
PeliasAutocompleteConfig.swift:46
      appendQueryItem("text", value: searchText)
PeliasAutocompleteConfig.swift:47
      appendQueryItem("api_key", value: apiKey)
PeliasAutocompleteConfig.swift:48
      appendQueryItem("focus.point.lat", value: String(focusPoint.latitude))
PeliasAutocompleteConfig.swift:49
      appendQueryItem("focus.point.lon", value: String(focusPoint.longitude))
PeliasPlaceConfig.swift:20
        appendQueryItem("api_key", value: key)
PeliasPlaceConfig.swift:38
      appendQueryItem("api_key", value: apiKey)
PeliasPlaceConfig.swift:57
    appendQueryItem("ids", value: queryString)
PeliasReverseGeoConfig.swift:17
        appendQueryItem("api_key", value: key)
PeliasReverseGeoConfig.swift:28
      appendQueryItem("point.lat", value: String(point.latitude))
PeliasReverseGeoConfig.swift:29
      appendQueryItem("point.lon", value: String(point.longitude))
PeliasReverseGeoConfig.swift:38
        appendQueryItem("size", value: String(size))
PeliasReverseGeoConfig.swift:46
        appendQueryItem("boundary.country", value: country)
PeliasReverseGeoConfig.swift:54
        appendQueryItem("sources", value: SearchSource.dataSourceString(sources))
PeliasReverseGeoConfig.swift:62
        appendQueryItem("layers", value: LayerFilter.layerString(layerArray))
PeliasReverseGeoConfig.swift:72
      appendQueryItem("point.lat", value: String(point.latitude))
PeliasReverseGeoConfig.swift:73
      appendQueryItem("point.lon", value: String(point.longitude))
PeliasReverseGeoConfig.swift:74
      appendQueryItem("api_key", value: apiKey)
PeliasSearchConfigObject.swift:17
      appendQueryItem("text", value: searchText)
PeliasSearchConfigObject.swift:28
        appendQueryItem("api_key", value: key)
PeliasSearchConfigObject.swift:38
        appendQueryItem("size", value: String(size))
PeliasSearchConfigObject.swift:46
        appendQueryItem("boundary.country", value: country)
PeliasSearchConfigObject.swift:54
        appendQueryItem("boundary.rect.min_lat", value: String(rect.minLatLong.latitude))
PeliasSearchConfigObject.swift:55
        appendQueryItem("boundary.rect.min_lon", value: String(rect.minLatLong.longitude))
PeliasSearchConfigObject.swift:56
        appendQueryItem("boundary.rect.max_lat", value: String(rect.maxLatLong.latitude))
PeliasSearchConfigObject.swift:57
        appendQueryItem("boundary.rect.max_lon", value: String(rect.maxLatLong.longitude))
PeliasSearchConfigObject.swift:65
        appendQueryItem("boundary.cirle.lat", value: String(circle.center.latitude))
PeliasSearchConfigObject.swift:66
        appendQueryItem("boundary.circle.lon", value: String(circle.center.longitude))
PeliasSearchConfigObject.swift:67
        appendQueryItem("boundary.circle.radius", value: String(circle.radius))
PeliasSearchConfigObject.swift:75
        appendQueryItem("focus.point.lat", value: String(point.latitude))
PeliasSearchConfigObject.swift:76
        appendQueryItem("focus.point.lon", value: String(point.longitude))
PeliasSearchConfigObject.swift:84
        appendQueryItem("sources", value: SearchSource.dataSourceString(sources))
PeliasSearchConfigObject.swift:92
        appendQueryItem("layers", value: LayerFilter.layerString(layerArray))
PeliasSearchConfigObject.swift:103
      appendQueryItem("text", value: searchText)
PeliasSearchConfigObject.swift:104
      appendQueryItem("api_key", value: apiKey)
(name: String, value: String?) { 0084 if let queryValue = value where queryValue.isEmpty == false{ 0085 let queryItem = NSURLQueryItem(name: name, value: queryValue) 0086 queryItems[name] = queryItem; 0087 0088 } 0089 } 0090 0091 func searchUrl() -> NSURL { 0092 let urlComponents = NSURLComponents(URL: urlEndpoint, resolvingAgainstBaseURL: true) 0093 urlComponents?.queryItems = Array(queryItems.values) 0094 return urlComponents!.URL! 0095 } 0096 } 0097 0098 protocol GenericSearchAPIConfigData
ConfigProtocol.swift:102
protocol AutocompleteAPIConfigData: GenericSearchAPIConfigData {
ConfigProtocol.swift:106
protocol SearchAPIConfigData : GenericSearchAPIConfigData {
: APIConfigData { 0099 var searchText: String { get set } 0100 } 0101 0102 protocol AutocompleteAPIConfigData
PeliasAutocompleteConfig.swift:11
public struct PeliasAutocompleteConfig : AutocompleteAPIConfigData {
: GenericSearchAPIConfigData { 0103 var focusPoint: GeoPoint { get set } 0104 } 0105 0106 protocol SearchAPIConfigData
PeliasSearchConfigObject.swift:11
public struct PeliasSearchConfig : SearchAPIConfigData {
: GenericSearchAPIConfigData { 0107 0108 var focusPoint: GeoPoint? { get set } 0109 var numberOfResults: Int? { get set } 0110 var boundaryCountry: String? { get set } 0111 var boundaryRect: SearchBoundaryRect? { get set } 0112 var boundaryCircle: SearchBoundaryCircle? { get set } 0113 var dataSources: [SearchSource]? { get set } 0114 var layers: [LayerFilter]? { get set } 0115 } 0116 0117 protocol ReverseAPIConfigData
PeliasReverseGeoConfig.swift:11
public struct PeliasReverseConfig : ReverseAPIConfigData {
: APIConfigData { 0118 var point: GeoPoint { get set } 0119 var numberOfResults: Int? { get set } 0120 var dataSources: [SearchSource]? { get set } 0121 var boundaryCountry: String? { get set } 0122 var layers: [LayerFilter]? { get set } 0123 } 0124 0125 protocol PlaceAPIConfigData
PeliasPlaceConfig.swift:11
public struct PeliasPlaceConfig : PlaceAPIConfigData {
: APIConfigData { 0126 var places: [PlaceAPIQueryItem] { get set } 0127 } 0128 0129 protocol PlaceAPIQueryItem
ConfigProtocol.swift:126
  var places: [PlaceAPIQueryItem] { get set }
PeliasPlaceConfig.swift:25
  var places: [PlaceAPIQueryItem] {
PeliasPlaceConfig.swift:31
  init(places: [PlaceAPIQueryItem], completionHandler: (PeliasResponse) -> Void){
PeliasPlaceConfig.swift:61
public struct PeliasPlaceQueryItem : PlaceAPIQueryItem {
{ 0130 var placeId
PeliasPlaceConfig.swift:49
      let addition = "\(place.dataSource.rawValue):\(place.layer.rawValue):\(place.placeId)"
: String { get set } 0131 var dataSource
PeliasPlaceConfig.swift:49
      let addition = "\(place.dataSource.rawValue):\(place.layer.rawValue):\(place.placeId)"
: SearchSource { get set } 0132 var layer
PeliasPlaceConfig.swift:49
      let addition = "\(place.dataSource.rawValue):\(place.layer.rawValue):\(place.placeId)"
: LayerFilter { get set } 0133 } 0134 0135 protocol APIResponse
PeliasSearchManager.swift:123
public class PeliasResponse: APIResponse {
{ 0136 var data: NSData? { get } 0137 var response: NSURLResponse? { get } 0138 var error: NSError? { get } 0139 }