this.constants=constants;
    public Object visitSwitchStatement(JSwitchStatement self,				       JExpression expr,				       JSwitchGroup[] body) {	if(!write) {	    expr.accept(this);	    for(int i = 0; i < body.length; i++) {		body[i].accept(this);	    }	} else {	    JExpression newExp = (JExpression)expr.accept(this);	    // reset if constant	    if (newExp.isConstant()) {		self.setExpression(newExp);	    }	    Propagator[] propagators=new Propagator[body.length];	    for (int i = 0; i < body.length; i++) {		Propagator prop=new Propagator((Hashtable)constants.clone(),true);		propagators[i]=prop;		body[i].accept(prop);	    }	    if(body.length>0)		constants=propagators[0].constants;	    for(int i=1;i<propagators.length;i++) {		Propagator prop=propagators[i];		LinkedList remove=new LinkedList();		Enumeration enum=constants.keys();		while(enum.hasMoreElements()) {		    Object key=enum.nextElement();		    if(prop.constants.containsKey(key))			remove.add(key);		}		for(int j=0;i<remove.size();j++) {		    constants.remove(remove.get(j));		    changed.put(remove.get(j),Boolean.TRUE);		}	    }	}