Search in sources :

Example 1 with CommonIdProvider

use of org.openhab.binding.weather.internal.model.common.CommonIdProvider 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);
        }
    }
}
Also used : CommonId(org.openhab.binding.weather.internal.model.common.CommonId) CommonIdList(org.openhab.binding.weather.internal.model.common.CommonIdList) InputStream(java.io.InputStream) CommonIdProvider(org.openhab.binding.weather.internal.model.common.CommonIdProvider) Unmarshaller(javax.xml.bind.Unmarshaller)

Aggregations

InputStream (java.io.InputStream)1 Unmarshaller (javax.xml.bind.Unmarshaller)1 CommonId (org.openhab.binding.weather.internal.model.common.CommonId)1 CommonIdList (org.openhab.binding.weather.internal.model.common.CommonIdList)1 CommonIdProvider (org.openhab.binding.weather.internal.model.common.CommonIdProvider)1