Btw, the various Preconditions calls can take a format string and trailing objects, so you do not need to do the String.format() call.  In fact, doing the String.format() like this means that you are going to generate the String every time the check happens, leading to a lot of superfluous String creations.