Wait, are you confused about why the cal variable changes? You pass it to the getSundaysDate() method and do direct changes to it with the newDate.add(Calendar.DAY_OF_MONTH,1) call.
Simply saying...