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); }