docs: @Programmatic
      public CommunicationChannelOwnerLink createLink(
              final CommunicationChannel communicationChannel,
              final Object owner) {
  
          final CommunicationChannelType type = communicationChannel.getType();
          final Class<? extends CommunicationChannelOwnerLink> subtype = subtypeClassFor(owner, type);
  
          final CommunicationChannelOwnerLink link = repositoryService.instantiate(subtype);
  
          link.setCommunicationChannel(communicationChannel);
          // copy over the type, to support subsequent querying.
          link.setCommunicationChannelType(type);
  
          final Bookmark bookmark = bookmarkService.bookmarkFor(owner);
          link.setOwner(owner);
          link.setOwnerStr(bookmark.toString());
  
          repositoryService.persist(link);
  
          return link;
      }