/** * Copyright (c) 2010-2016 by the respective copyright holders. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.openhab.binding.weather.internal.model; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import org.openhab.binding.weather.internal.annotation.Provider; import org.openhab.binding.weather.internal.annotation.ProviderMappings; import org.openhab.binding.weather.internal.converter.ConverterType; /** * Common provider model for station data. * * @author Gerhard Riegler * @since 1.7.0 */ public class Station { @ProviderMappings({ @Provider(name = ProviderName.WUNDERGROUND, property = "current_observation.observation_location.full"), @Provider(name = ProviderName.HAMWEATHER, property = "place.name"), @Provider(name = ProviderName.OPENWEATHERMAP, property = "name") }) private String name; @ProviderMappings({ @Provider(name = ProviderName.WUNDERGROUND, property = "current_observation.station_id"), @Provider(name = ProviderName.HAMWEATHER, property = "response.id") }) private String id; @ProviderMappings({ @Provider(name = ProviderName.WUNDERGROUND, property = "current_observation.observation_location.latitude"), @Provider(name = ProviderName.HAMWEATHER, property = "loc.lat"), @Provider(name = ProviderName.METEOBLUE, property = "lat"), @Provider(name = ProviderName.FORECASTIO, property = "latitude"), @Provider(name = ProviderName.OPENWEATHERMAP, property = "coord.lat") }) private Double latitude; @ProviderMappings({ @Provider(name = ProviderName.WUNDERGROUND, property = "current_observation.observation_location.longitude"), @Provider(name = ProviderName.HAMWEATHER, property = "loc.long"), @Provider(name = ProviderName.METEOBLUE, property = "lon"), @Provider(name = ProviderName.FORECASTIO, property = "longitude"), @Provider(name = ProviderName.OPENWEATHERMAP, property = "coord.lon") }) private Double longitude; @ProviderMappings({ @Provider(name = ProviderName.WUNDERGROUND, property = "current_observation.observation_location.elevation", converter = ConverterType.FEET), @Provider(name = ProviderName.HAMWEATHER, property = "profile.elevM"), @Provider(name = ProviderName.METEOBLUE, property = "asl") }) private Double altitude; /** * Returns the station name. */ public String getName() { return name; } /** * Sets the station name. */ public void setName(String name) { this.name = name; } /** * Returns the station id. */ public String getId() { return id; } /** * Sets the station id. */ public void setId(String id) { this.id = id; } /** * Returns the station latitude. */ public Double getLatitude() { return latitude; } /** * Sets the station latitude. */ public void setLatitude(Double latitude) { this.latitude = latitude; } /** * Returns the station longitude. */ public Double getLongitude() { return longitude; } /** * Sets the station longitude. */ public void setLongitude(Double longitude) { this.longitude = longitude; } /** * Returns the station altitude. */ public Double getAltitude() { return altitude; } /** * Sets the station altitude. */ public void setAltitude(Double altitude) { this.altitude = altitude; } /** * {@inheritDoc} */ @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE).append("name", name).append("id", id) .append("latitude", latitude).append("longitude", longitude).append("altitude", altitude).toString(); } }