Skip to content

Commit 12f0447

Browse files
committed
fix linkChannel and unlinkChannel
1 parent 2e45fa7 commit 12f0447

1 file changed

Lines changed: 18 additions & 9 deletions

File tree

src/helper.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -323,22 +323,31 @@ def getChannelLinks(self) -> list[Java_ItemChannelLink]:
323323
@_Tracing.javacall
324324
def linkChannel(self, channel_uid: str, link_config: dict[str, str] = {}) -> Java_ItemChannelLink:
325325
uid = Java_ChannelUID(channel_uid)
326-
link = Java_ItemChannelLink(self.getName(), uid, Configuration(link_config))
326+
config = Configuration(link_config)
327+
327328
links = ITEM_CHANNEL_LINK_REGISTRY.getLinks(uid)
328-
if len(links) > 0:
329-
if not links[0].getConfiguration().equals(link.getConfiguration()):
330-
ITEM_CHANNEL_LINK_REGISTRY.update(link)
331-
else:
332-
ITEM_CHANNEL_LINK_REGISTRY.add(link)
329+
if links.size() > 0:
330+
for link in links:
331+
if link.getItemName() == self.getName():
332+
if not link.getConfiguration().equals(config):
333+
ITEM_CHANNEL_LINK_REGISTRY.update(link)
334+
return link
335+
336+
link = Java_ItemChannelLink(self.getName(), uid, config)
337+
ITEM_CHANNEL_LINK_REGISTRY.add(link)
333338
return link
334339

335340
@_Tracing.javacall
336341
def unlinkChannel(self, channel_uid: str) -> Java_ItemChannelLink:
337342
uid = Java_ChannelUID(channel_uid)
343+
338344
links = ITEM_CHANNEL_LINK_REGISTRY.getLinks(uid)
339-
if len(links) > 0:
340-
ITEM_CHANNEL_LINK_REGISTRY.remove(uid)
341-
return links[0]
345+
if links.size() > 0:
346+
for link in links:
347+
if link.getItemName() == self.getName():
348+
ITEM_CHANNEL_LINK_REGISTRY.remove(link.getUID())
349+
return link
350+
342351
raise NotFoundException("Link {} not found".format(channel_uid))
343352

344353
def getPersistence(self, service_id: str = None) -> 'ItemPersistence':

0 commit comments

Comments
 (0)