001/* 002 * Copyright 2008 Marc Wick, geonames.org 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 * 016 */ 017package org.geonames; 018 019import java.io.UnsupportedEncodingException; 020import java.net.URLEncoder; 021import java.util.Comparator; 022 023/** 024 * a wikipedia article 025 * 026 * @author marc@geonames 027 * 028 */ 029public class WikipediaArticle { 030 031 private String language; 032 033 private String title; 034 035 private String summary; 036 037 private String wikipediaUrl; 038 039 private String feature; 040 041 private int population; 042 043 private Integer elevation; 044 045 private double latitude; 046 047 private double longitude; 048 049 private String thumbnailImg; 050 051 private int rank; 052 053 /** 054 * @return Returns the elevation. 055 */ 056 public Integer getElevation() { 057 return elevation; 058 } 059 060 /** 061 * @param elevation 062 * The elevation to set. 063 */ 064 public void setElevation(int elevation) { 065 this.elevation = elevation; 066 } 067 068 /** 069 * @return Returns the feature. 070 */ 071 public String getFeature() { 072 return feature; 073 } 074 075 /** 076 * @param feature 077 * The feature to set. 078 */ 079 public void setFeature(String feature) { 080 this.feature = feature; 081 } 082 083 /** 084 * @return Returns the language. 085 */ 086 public String getLanguage() { 087 return language; 088 } 089 090 /** 091 * @param language 092 * The language to set. 093 */ 094 public void setLanguage(String language) { 095 this.language = language; 096 } 097 098 /** 099 * @return Returns the latitude. 100 */ 101 public double getLatitude() { 102 return latitude; 103 } 104 105 /** 106 * @param latitude 107 * The latitude to set. 108 */ 109 public void setLatitude(double latitude) { 110 this.latitude = latitude; 111 } 112 113 /** 114 * @return Returns the longitude. 115 */ 116 public double getLongitude() { 117 return longitude; 118 } 119 120 /** 121 * @param longitude 122 * The longitude to set. 123 */ 124 public void setLongitude(double longitude) { 125 this.longitude = longitude; 126 } 127 128 /** 129 * @return Returns the population. 130 */ 131 public int getPopulation() { 132 return population; 133 } 134 135 /** 136 * @param population 137 * The population to set. 138 */ 139 public void setPopulation(int population) { 140 this.population = population; 141 } 142 143 /** 144 * @return Returns the summary. 145 */ 146 public String getSummary() { 147 return summary; 148 } 149 150 /** 151 * @param summary 152 * The summary to set. 153 */ 154 public void setSummary(String summary) { 155 this.summary = summary; 156 } 157 158 /** 159 * @return Returns the title. 160 */ 161 public String getTitle() { 162 return title; 163 } 164 165 /** 166 * @param title 167 * The title to set. 168 */ 169 public void setTitle(String title) { 170 this.title = title; 171 } 172 173 /** 174 * @return Returns the wikipediaUrl. 175 */ 176 public String getWikipediaUrl() { 177 if (wikipediaUrl == null || WebService.isAndroid()) { 178 String urlTitle = title.replace(' ', '_'); 179 try { 180 urlTitle = URLEncoder.encode(urlTitle, "UTF8"); 181 } catch (UnsupportedEncodingException ex) { 182 } 183 String lang = language; 184 if (WebService.isAndroid()) { 185 lang += ".m"; 186 } 187 return "http://" + lang + ".wikipedia.org/wiki/" + urlTitle; 188 } 189 return wikipediaUrl; 190 } 191 192 /** 193 * @param wikipediaUrl 194 * The wikipediaUrl to set. 195 */ 196 public void setWikipediaUrl(String wikipediaURL) { 197 this.wikipediaUrl = wikipediaURL; 198 } 199 200 /** 201 * @return the thumbnailImg 202 */ 203 public String getThumbnailImg() { 204 return thumbnailImg; 205 } 206 207 /** 208 * @param thumbnailImg 209 * the thumbnailImg to set 210 */ 211 public void setThumbnailImg(String thumbnailImg) { 212 this.thumbnailImg = thumbnailImg; 213 } 214 215 /** 216 * @return the rank 217 */ 218 public int getRank() { 219 return rank; 220 } 221 222 /** 223 * @param rank 224 * the rank to set 225 */ 226 public void setRank(int rank) { 227 this.rank = rank; 228 } 229 230 public final static Comparator ELEVATION_ORDER = new Comparator<WikipediaArticle>() { 231 public int compare(WikipediaArticle o1, WikipediaArticle o2) { 232 return Double.compare(o2.elevation, o1.elevation); 233 } 234 }; 235 236 public final static Comparator RANK_ORDER = new Comparator<WikipediaArticle>() { 237 public int compare(WikipediaArticle o1, WikipediaArticle o2) { 238 return Double.compare(o2.rank, o1.rank); 239 } 240 }; 241}