Search in sources :

Example 1 with SitemapProvider

use of org.openhab.core.model.sitemap.SitemapProvider in project openhab-core by openhab.

the class SitemapResource method getSitemapBeans.

public Collection<SitemapDTO> getSitemapBeans(URI uri) {
    Collection<SitemapDTO> beans = new LinkedList<>();
    Set<String> names = new HashSet<>();
    logger.debug("Received HTTP GET request at '{}'.", UriBuilder.fromUri(uri).build().toASCIIString());
    for (SitemapProvider provider : sitemapProviders) {
        for (String modelName : provider.getSitemapNames()) {
            Sitemap sitemap = provider.getSitemap(modelName);
            if (sitemap != null) {
                if (!names.contains(modelName)) {
                    names.add(modelName);
                    SitemapDTO bean = new SitemapDTO();
                    bean.name = modelName;
                    bean.icon = sitemap.getIcon();
                    bean.label = sitemap.getLabel();
                    bean.link = UriBuilder.fromUri(uri).path(bean.name).build().toASCIIString();
                    bean.homepage = new PageDTO();
                    bean.homepage.link = bean.link + "/" + sitemap.getName();
                    beans.add(bean);
                } else {
                    logger.warn("Found duplicate sitemap name '{}' - ignoring it. Please check your configuration.", modelName);
                }
            }
        }
    }
    return beans;
}
Also used : Sitemap(org.openhab.core.model.sitemap.sitemap.Sitemap) SitemapProvider(org.openhab.core.model.sitemap.SitemapProvider) LinkedList(java.util.LinkedList) HashSet(java.util.HashSet)

Aggregations

HashSet (java.util.HashSet)1 LinkedList (java.util.LinkedList)1 SitemapProvider (org.openhab.core.model.sitemap.SitemapProvider)1 Sitemap (org.openhab.core.model.sitemap.sitemap.Sitemap)1