Search in sources :

Example 1 with ItemFactory

use of org.openhab.core.items.ItemFactory in project openhab-core by openhab.

the class ItemBuilderImpl method build.

@Override
public Item build() {
    Item item = null;
    if (GroupItem.TYPE.equals(itemType)) {
        item = new GroupItem(name, baseItem, groupFunction);
    } else {
        for (ItemFactory itemFactory : itemFactories) {
            item = itemFactory.createItem(itemType, name);
            if (item != null) {
                break;
            }
        }
    }
    if (item == null) {
        throw new IllegalStateException("No item factory could handle type " + itemType);
    }
    if (item instanceof ActiveItem) {
        ActiveItem activeItem = (ActiveItem) item;
        activeItem.setLabel(label);
        activeItem.setCategory(category);
        activeItem.addGroupNames(groups);
        activeItem.addTags(tags);
    }
    return item;
}
Also used : ActiveItem(org.openhab.core.items.ActiveItem) GroupItem(org.openhab.core.items.GroupItem) Item(org.openhab.core.items.Item) ItemFactory(org.openhab.core.items.ItemFactory) ActiveItem(org.openhab.core.items.ActiveItem) GroupItem(org.openhab.core.items.GroupItem)

Example 2 with ItemFactory

use of org.openhab.core.items.ItemFactory in project openhab-addons by openhab.

the class WWNThingHandlerOSGiTest method setUp.

@BeforeEach
public void setUp() throws ItemNotFoundException {
    registerService(volatileStorageService);
    managedThingProvider = getService(ThingProvider.class, ManagedThingProvider.class);
    assertThat("Could not get ManagedThingProvider", managedThingProvider, is(notNullValue()));
    thingTypeRegistry = getService(ThingTypeRegistry.class);
    assertThat("Could not get ThingTypeRegistry", thingTypeRegistry, is(notNullValue()));
    channelTypeRegistry = getService(ChannelTypeRegistry.class);
    assertThat("Could not get ChannelTypeRegistry", channelTypeRegistry, is(notNullValue()));
    channelGroupTypeRegistry = getService(ChannelGroupTypeRegistry.class);
    assertThat("Could not get ChannelGroupTypeRegistry", channelGroupTypeRegistry, is(notNullValue()));
    eventPublisher = getService(EventPublisher.class);
    assertThat("Could not get EventPublisher", eventPublisher, is(notNullValue()));
    itemFactory = getService(ItemFactory.class);
    assertThat("Could not get ItemFactory", itemFactory, is(notNullValue()));
    itemRegistry = getService(ItemRegistry.class);
    assertThat("Could not get ItemRegistry", itemRegistry, is(notNullValue()));
    managedItemChannelLinkProvider = getService(ManagedItemChannelLinkProvider.class);
    assertThat("Could not get ManagedItemChannelLinkProvider", managedItemChannelLinkProvider, is(notNullValue()));
    clientBuilder = getService(ClientBuilder.class);
    assertThat("Could not get ClientBuilder", clientBuilder, is(notNullValue()));
    eventSourceFactory = getService(SseEventSourceFactory.class);
    assertThat("Could not get SseEventSourceFactory", eventSourceFactory, is(notNullValue()));
    ComponentContext componentContext = mock(ComponentContext.class);
    when(componentContext.getBundleContext()).thenReturn(bundleContext);
    nestTestHandlerFactory = new WWNTestHandlerFactory(clientBuilder, eventSourceFactory);
    nestTestHandlerFactory.activate(componentContext, Map.of(WWNTestHandlerFactory.REDIRECT_URL_CONFIG_PROPERTY, REDIRECT_URL));
    registerService(nestTestHandlerFactory);
    nestTestHandlerFactory = getService(ThingHandlerFactory.class, WWNTestHandlerFactory.class);
    assertThat("Could not get NestTestHandlerFactory", nestTestHandlerFactory, is(notNullValue()));
    bridge = buildBridge();
    thing = buildThing(bridge);
    bridgeHandler = addThing(bridge, WWNTestAccountHandler.class);
    thingHandler = addThing(thing, thingClass);
    createAndLinkItems();
    assertThatAllItemStatesAreNull();
}
Also used : ManagedItemChannelLinkProvider(org.openhab.core.thing.link.ManagedItemChannelLinkProvider) EventPublisher(org.openhab.core.events.EventPublisher) ComponentContext(org.osgi.service.component.ComponentContext) WWNTestAccountHandler(org.openhab.binding.nest.internal.wwn.test.WWNTestAccountHandler) ItemRegistry(org.openhab.core.items.ItemRegistry) ThingHandlerFactory(org.openhab.core.thing.binding.ThingHandlerFactory) WWNTestHandlerFactory(org.openhab.binding.nest.internal.wwn.test.WWNTestHandlerFactory) ThingProvider(org.openhab.core.thing.ThingProvider) ManagedThingProvider(org.openhab.core.thing.ManagedThingProvider) ChannelGroupTypeRegistry(org.openhab.core.thing.type.ChannelGroupTypeRegistry) ChannelTypeRegistry(org.openhab.core.thing.type.ChannelTypeRegistry) ItemFactory(org.openhab.core.items.ItemFactory) SseEventSourceFactory(org.osgi.service.jaxrs.client.SseEventSourceFactory) ManagedThingProvider(org.openhab.core.thing.ManagedThingProvider) ThingTypeRegistry(org.openhab.core.thing.type.ThingTypeRegistry) ClientBuilder(javax.ws.rs.client.ClientBuilder) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 3 with ItemFactory

use of org.openhab.core.items.ItemFactory in project openhab-core by openhab.

the class CommunicationManager method calculateAcceptedTypes.

private synchronized void calculateAcceptedTypes() {
    acceptedCommandTypeMap.clear();
    acceptedStateTypeMap.clear();
    for (ItemFactory itemFactory : itemFactories) {
        for (String itemTypeName : itemFactory.getSupportedItemTypes()) {
            Item item = itemFactory.createItem(itemTypeName, "tmp");
            if (item != null) {
                acceptedCommandTypeMap.put(itemTypeName, item.getAcceptedCommandTypes());
                acceptedStateTypeMap.put(itemTypeName, item.getAcceptedDataTypes());
            } else {
                logger.error("Item factory {} suggested it can create items of type {} but returned null", itemFactory, itemTypeName);
            }
        }
    }
}
Also used : NumberItem(org.openhab.core.library.items.NumberItem) Item(org.openhab.core.items.Item) ItemFactory(org.openhab.core.items.ItemFactory)

Aggregations

ItemFactory (org.openhab.core.items.ItemFactory)3 Item (org.openhab.core.items.Item)2 ClientBuilder (javax.ws.rs.client.ClientBuilder)1 BeforeEach (org.junit.jupiter.api.BeforeEach)1 WWNTestAccountHandler (org.openhab.binding.nest.internal.wwn.test.WWNTestAccountHandler)1 WWNTestHandlerFactory (org.openhab.binding.nest.internal.wwn.test.WWNTestHandlerFactory)1 EventPublisher (org.openhab.core.events.EventPublisher)1 ActiveItem (org.openhab.core.items.ActiveItem)1 GroupItem (org.openhab.core.items.GroupItem)1 ItemRegistry (org.openhab.core.items.ItemRegistry)1 NumberItem (org.openhab.core.library.items.NumberItem)1 ManagedThingProvider (org.openhab.core.thing.ManagedThingProvider)1 ThingProvider (org.openhab.core.thing.ThingProvider)1 ThingHandlerFactory (org.openhab.core.thing.binding.ThingHandlerFactory)1 ManagedItemChannelLinkProvider (org.openhab.core.thing.link.ManagedItemChannelLinkProvider)1 ChannelGroupTypeRegistry (org.openhab.core.thing.type.ChannelGroupTypeRegistry)1 ChannelTypeRegistry (org.openhab.core.thing.type.ChannelTypeRegistry)1 ThingTypeRegistry (org.openhab.core.thing.type.ThingTypeRegistry)1 ComponentContext (org.osgi.service.component.ComponentContext)1 SseEventSourceFactory (org.osgi.service.jaxrs.client.SseEventSourceFactory)1