use of org.openhab.binding.weather.internal.model.common.CommonId in project openhab1-addons by openhab.
the class CommonIdHandler method loadMapping.
/**
* Load predefined common id mappings from an XML file.
*/
public void loadMapping() throws Exception {
Unmarshaller um = JAXBContext.newInstance(CommonIdList.class).createUnmarshaller();
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("weather/common-id-mappings.xml");
CommonIdList mappings = (CommonIdList) um.unmarshal(stream);
for (CommonId commonId : mappings.getCommonIds()) {
for (CommonIdProvider commonIdProvider : commonId.getProviders()) {
Map<String, CommonId> commonIds = providerCommonIds.get(commonIdProvider.getName());
if (commonIds == null) {
commonIds = new HashMap<String, CommonId>();
providerCommonIds.put(commonIdProvider.getName(), commonIds);
}
addCommonId(commonIdProvider.getIds(), "id", commonIdProvider, commonIds, commonId);
addCommonId(commonIdProvider.getIcons(), "icon", commonIdProvider, commonIds, commonId);
}
}
}
use of org.openhab.binding.weather.internal.model.common.CommonId in project openhab1-addons by openhab.
the class CommonIdHandler method setCommonId.
/**
* Sets the common condition id into the weather object.
*/
public void setCommonId(Weather weather) {
Map<String, CommonId> commonIds = providerCommonIds.get(weather.getProvider());
if (commonIds == null) {
throw new RuntimeException("No common ids for provider " + weather.getProvider() + " declared");
}
Condition cond = weather.getCondition();
CommonId cid = commonIds.get(cond.getId());
if (cid == null) {
cid = commonIds.get(cond.getIcon());
}
if (cid != null) {
cond.setCommonId(cid.getId());
} else {
ToStringBuilder tsb = new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE).append("provider", weather.getProvider()).append("id", cond.getId()).append("icon", cond.getIcon());
logger.warn("CommonId not found: {}", tsb.toString());
}
}
Aggregations