Since we are starting to have more an more of those copy & modify methods, maybe we should reuse the existing  Druids.XXXQueryBuilder objects instead of creating all those extra methods. Make the builders first class citizens, and use XXXQueryBuilder.copy(query).dataSource(dataSource).build()