if (oper instanceof SIRPredefinedFilter) { work_function = ((SIRFilter)oper).getName()+"__work__"+id; } else { work_function = ((SIRFilter)oper).getWork().getName()+"__"+id; }
work_function = ClusterUtils.getWorkName(((SIRFilter)oper), id);
    public ClusterCodeGenerator(SIROperator oper, 				   JFieldDeclaration fields[]) {		this.oper = oper;	this.fields = fields;	id = NodeEnumerator.getSIROperatorId(oper);	node = NodeEnumerator.getFlatNode(id);	Integer init_int = (Integer)ClusterBackend.initExecutionCounts.get(node);	if (init_int == null) { init_counts = 0; } else { init_counts = init_int.intValue(); }	steady_counts = ((Integer)ClusterBackend.steadyExecutionCounts.get(node)).intValue();	if (oper instanceof SIRFilter) {	    if (oper instanceof SIRPredefinedFilter) {		work_function = ((SIRFilter)oper).getName()+"__work__"+id;	    } else {	    work_function = ((SIRFilter)oper).getWork().getName()+"__"+id;	    }	} 	if (oper instanceof SIRSplitter) {	    work_function = "__splitter_"+id+"_work";	}	if (oper instanceof SIRJoiner) {	    work_function = "__joiner_"+id+"_work";	}	isEliminated = ClusterFusion.isEliminated(node);	fusedWith = ClusterFusion.fusedWith(node);	data_in = (Vector)RegisterStreams.getNodeInStreams(oper);	data_out = (Vector)RegisterStreams.getNodeOutStreams(oper);	if (oper instanceof SIRStream) {	    SIRStream stream = (SIRStream)oper;	    if (stream.getInputType().toString().compareTo("void") == 0) 		data_in.clear();	    if (stream.getOutputType().toString().compareTo("void") == 0) 		data_out.clear();	}	msg_from = new Vector();	msg_to = new Vector();	restrictedExecution = false;	sendsCreditsTo = new HashSet();	sendsCredits = false;	if (oper instanceof SIRFilter) {	    SIRFilter f = (SIRFilter)oper;	    restrictedExecution = LatencyConstraints.isRestricted(f); 	    	    /*	    if (restrictedExecution) {		initCredit = LatencyConstraints.getInitCredit(f); 	    }	    */	    sendsCreditsTo = LatencyConstraints.getOutgoingConstraints(f);	    sendsCredits = (sendsCreditsTo.size() > 0);	    SIRPortal outgoing[] = SIRPortal.getPortalsWithSender(f);	    SIRPortal incoming[] = SIRPortal.getPortalsWithReceiver(f);	    for (int t = 0; t < outgoing.length; t++) {		SIRStream[] receivers = outgoing[t].getReceivers();		for (int i = 0; i < receivers.length; i++) {		    msg_to.add(receivers[i]);		}	    }	    for (int t = 0; t < incoming.length; t++) {		SIRPortalSender[] senders = incoming[t].getSenders();		for (int i = 0; i < senders.length; i++) {		    msg_from.add(senders[i].getStream());		}	    }	}    }