"the guava Preconditions class has more specialized methods for checking various types of conditions; I only used Preconditions.checkArgument() so that the exact type of exception thrown does not change (for example some of the other methods throw NullPointerException instead of IllegalArgumentException)" . . . .