LinkedList newAssignments = new LinkedList(); List oldAssignments = (List)staticNameToAssignments.get(sf);
LinkedList<JStatement> newAssignments = new LinkedList<JStatement>(); List<JStatement> oldAssignments = staticNameToAssignments.get(sf);
    private void propagateIntoStreams(SIRStream str) {        IterFactory.createFactory().createIter(str).accept(            new EmptyStreamVisitor() {                public void postVisitStream(SIRStream self,                        SIRIterator iter) {                    String streamIdent = self.getIdent();                    Set/*<StaticAndField>*/ toPropagate =                         (Set)streamIdentToField.get(streamIdent);                                            Map /*<StaticAndField,String>*/ namesInStream = 			new HashMap();		    // if any references to statics in stream                    if (toPropagate != null) {                         for (Iterator it = toPropagate.iterator();                          it.hasNext();) {                            StaticAndField sf = (StaticAndField)it.next();                                                            String newFieldName = 				newName(sf,staticNameToNewNames);                            namesInStream.put(sf, newFieldName);                            // We now have a static section and field name                            // to propagate into the stream "self".                            // (1) make a copy of the field decl and code                            JFieldDeclaration newDecl = 			      (JFieldDeclaration) ObjectDeepCloner			      .deepCopy(				(JFieldDeclaration)staticNameToFields.get(sf));                            LinkedList/*<JStatement>*/ newAssignments = 				new LinkedList();                            List/*<JStatement>*/ oldAssignments =                                 (List)staticNameToAssignments.get(sf);                            for (Iterator i = oldAssignments.iterator(); i                                    .hasNext();) {                                newAssignments                                        .addLast((JStatement) ObjectDeepCloner                                                .deepCopy((JStatement) i                                                        .next()));                            }                            // (2) rename in the copy                            mungFieldName(sf, 					  newFieldName,newDecl,newAssignments);                                                            // (3) propagate field decl                            // (4) propagate code.                                                              // For a filter, which can have multiple functions,                            // propgate as a field.                            // For a container, which has only an init function,                            // propagate as local variables in the init function.                            // (If propagated as field, would not be correctly                            // propagated through parameters by other 			    // propagation phases                            propagateFieldDecl(self,newDecl);                            propagateCode(self,newAssignments);                        }                        // (5) update all references to the old names in 			// the stream                        updateReferences(self,namesInStream);                    }                }                });        // (6) map from each synonym for a field name to the        // set of all synonyms        makeNameToName(staticNameToNewNames, nameToName);    }