code: public static Collection<Channel> filterbyTags(
  			Collection<Channel> channels, Collection<String> tagNames) {
  		Collection<Channel> result = new ArrayList<Channel>();
  		Collection<Channel> input = new ArrayList<Channel>(channels);
  		for (Channel channel : input) {
  			if (channel.getTagNames().containsAll(tagNames)) {
  				result.add(channel);
  			}
  		}
  		return result;
  	}
docs: Given a Collection of channels returns a new collection of channels
  containing only those channels which have all the tags in the
  <tt>tagNames</tt>
  
  @param channels
  - the input list of channels
  @param tagNames
  - the list of tags required on all channels
  @return Collections of Channels which have all the tags within tagNames