code: public void setBroadcastInputs(List<NamedChannel> broadcastInputs) {
  		if (broadcastInputs != null) {
  			this.broadcastInputs = broadcastInputs;
  			
  			// update the branch map
  			for (NamedChannel nc : broadcastInputs) {
  				PlanNode source = nc.getSource();
  				
  				mergeBranchPlanMaps(branchPlan, source.branchPlan);
  			}
  		}
  		
  		// do a sanity check that if we are branching, we have now candidates for each branch point
  		if (this.template.hasUnclosedBranches()) {
  			if (this.branchPlan == null) {
  				throw new CompilerException("Branching and rejoining logic did not find a candidate for the branching point.");
  			}
  	
  			for (UnclosedBranchDescriptor uc : this.template.getOpenBranches()) {
  				OptimizerNode brancher = uc.getBranchingNode();
  				if (this.branchPlan.get(brancher) == null) {
  					throw new CompilerException("Branching and rejoining logic did not find a candidate for the branching point.");
  				}
  			}
  		}
  	}
docs: Sets a list of all broadcast inputs attached to this node.