/**
* 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 atmosphere data.
*
* @author Gerhard Riegler
* @since 1.6.0
*/
public class Atmosphere {
@ProviderMappings({
@Provider(name = ProviderName.WUNDERGROUND, property = "current_observation.relative_humidity", converter = ConverterType.PERCENT_INTEGER),
@Provider(name = ProviderName.WUNDERGROUND, property = "avehumidity"),
@Provider(name = ProviderName.OPENWEATHERMAP, property = "humidity"),
@Provider(name = ProviderName.FORECASTIO, property = "humidity", converter = ConverterType.FRACTION_INTEGER),
@Provider(name = ProviderName.WORLDWEATHERONLINE, property = "humidity"),
@Provider(name = ProviderName.YAHOO, property = "atmosphere.humidity"),
@Provider(name = ProviderName.HAMWEATHER, property = "humidity"),
@Provider(name = ProviderName.METEOBLUE, property = "relative_humidity_avg") })
private Integer humidity;
@ProviderMappings({
@Provider(name = ProviderName.WUNDERGROUND, property = "current_observation.visibility_km"),
@Provider(name = ProviderName.FORECASTIO, property = "visibility"),
@Provider(name = ProviderName.WORLDWEATHERONLINE, property = "visibility"),
@Provider(name = ProviderName.YAHOO, property = "atmosphere.visibility"),
@Provider(name = ProviderName.HAMWEATHER, property = "visibilityKM") })
private Double visibility;
@ProviderMappings({
@Provider(name = ProviderName.WUNDERGROUND, property = "current_observation.pressure_mb"),
@Provider(name = ProviderName.OPENWEATHERMAP, property = "pressure"),
@Provider(name = ProviderName.FORECASTIO, property = "pressure"),
@Provider(name = ProviderName.WORLDWEATHERONLINE, property = "pressure"),
@Provider(name = ProviderName.YAHOO, property = "atmosphere.pressure"),
@Provider(name = ProviderName.HAMWEATHER, property = "pressureMB"),
@Provider(name = ProviderName.METEOBLUE, property = "pressure_hpa") })
private Double pressure;
@ProviderMappings({
@Provider(name = ProviderName.WUNDERGROUND, property = "current_observation.pressure_trend", converter = ConverterType.PRESSURE_TREND) })
private String pressureTrend;
@ProviderMappings({
@Provider(name = ProviderName.FORECASTIO, property = "ozone") })
private Integer ozone;
@ProviderMappings({
@Provider(name = ProviderName.WUNDERGROUND, property = "current_observation.UV"),
@Provider(name = ProviderName.WORLDWEATHERONLINE, property = "uvIndex"),
@Provider(name = ProviderName.METEOBLUE, property = "uv_index") })
private Integer uvIndex;
/**
* Returns the humidity in percent.
*/
public Integer getHumidity() {
return humidity;
}
/**
* Sets the humidity.
*/
public void setHumidity(Integer humidity) {
this.humidity = humidity;
}
/**
* Returns the visibility in kilometers.
*/
public Double getVisibility() {
return visibility;
}
/**
* Sets the visibility in kilometers.
*/
public void setVisibility(Double visibility) {
this.visibility = visibility;
}
/**
* Returns the pressure in millibar.
*/
public Double getPressure() {
return pressure;
}
/**
* Sets the pressure in millibar.
*/
public void setPressure(Double pressure) {
this.pressure = pressure;
}
/**
* Returns the pressure trend (up, down, equal).
*/
public String getPressureTrend() {
return pressureTrend;
}
/**
* Sets the pressure trend.
*/
public void setPressureTrend(String pressureTrend) {
this.pressureTrend = pressureTrend;
}
/**
* Returns the ozone in ppm.
*/
public Integer getOzone() {
return ozone;
}
/**
* Sets the ozone.
*/
public void setOzone(Integer ozone) {
this.ozone = ozone;
}
/**
* Returns the uv Index.
*/
public Integer getUvIndex() {
return uvIndex;
}
/**
* Sets the uvIndex.
*/
public void setUvIndex(Integer uvIndex) {
this.uvIndex = uvIndex;
}
/**
* {@inheritDoc}
*/
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE).append("humidity", humidity)
.append("visibility", visibility).append("pressure", pressure).append("pressureTrend", pressureTrend)
.append("ozone", ozone).append("uvIndex", uvIndex).toString();
}
}