I see that the same calls are made inside the following 3 cases.
Are these 3 if (condition) here independent (one doesn't trigger change in the other? If not, compute one flag and call the method and return true just once. Copy-paste is not good.