private void addBroadcast(Version version, Broadcast newBroadcast) {
    if (Strings.isNullOrEmpty(newBroadcast.getSourceId())) {
      return;
    }

    Set<Broadcast> broadcasts = Sets.newHashSet();
    Interval newBroadcastInterval = newBroadcast.transmissionInterval().requireValue();

    for (Broadcast existingBroadcast : version.getBroadcasts()) {
      if (newBroadcast.getSourceId().equals(existingBroadcast.getSourceId())) {
        continue;
      }
      if (existingBroadcast.transmissionInterval().hasValue()) {
        Interval currentInterval = existingBroadcast.transmissionInterval().requireValue();
        if (existingBroadcast.getBroadcastOn().equals(newBroadcast.getBroadcastOn())
            && currentInterval.overlaps(newBroadcastInterval)) {
          continue;
        }
      }
      broadcasts.add(existingBroadcast);
    }
    broadcasts.add(newBroadcast);

    version.setBroadcasts(broadcasts);
  }