JoinerScheduleNode code = new JoinerScheduleNode(i, current.buffer);
JoinerScheduleNode code = new JoinerScheduleNode(i, current.buffer,joinerType);
    private void callInitPaths(SimulationCounter counters)     {        //find all the joiners that are immediately contained in a FeedbackLoop        Iterator joiners = layout.getJoiners().iterator();        //clone the joiner schedules            FlatNode joiner;        //iterate over all of the joiners of a feedbackloop        while (joiners.hasNext()) {            joiner = (FlatNode)joiners.next();            if ((((SIRJoiner)joiner.contents).getParent() instanceof SIRFeedbackLoop)) {                //create the initPath calls                 SIRFeedbackLoop loop = (SIRFeedbackLoop)((SIRJoiner)joiner.contents).getParent();                int delay = loop.getDelayInt();                JoinerScheduleNode current = ((JoinerScheduleNode)JoinerSimulator.schedules.get(joiner));                        for (int i = 0; i < delay; i++) {                    //for each init path call find the correct buffer to place it in.                    while(true) {                        if (current.buffer.endsWith("1")) {                            //create the joinerCode Node and put it in the init schedule                            JoinerScheduleNode prev =                                 (JoinerScheduleNode)currentJoinerCode.get(joiner);                            JoinerScheduleNode code = new JoinerScheduleNode(i, current.buffer);                            if (prev == null) {                                //first node in joiner code                                //this will add it to the joiner code hashmap                                //this hashmap store the first instruction of each code sequence                                joinerCode.put(joiner, code);                            }                            else {                                //connect to the prev                                prev.next = code;                            }                            //set current                            currentJoinerCode.put(joiner, code);                            //record that a data item was placed in this buffer                            counters.incrementJoinerBufferCount(joiner, current.buffer);                            //we found a buffer so break and place the next initPath call                            current = current.next;                            break;                        }                        current = current.next;                    }                }            }        }    }