code: public static void checkClassModifiers(final int modifiers, final boolean isInterface,
              final boolean isInnerClass) {
  
          // Basic checks
          final int type;
          if (isInterface) {
              if (isInnerClass) {
                  type = INNER_INTERFACE;
              } else {
                  type = OUTER_INTERFACE;
              }
          } else {
              if (isInnerClass) {
                  type = INNER_CLASS;
              } else {
                  type = OUTER_CLASS;
              }
          }
          checkModifiers(type, modifiers);
  
          // Abstract and final check
          if (Modifier.isAbstract(modifiers) && Modifier.isFinal(modifiers)) {
              throw new IllegalArgumentException(CLASS_ABSTRACT_AND_FINAL_ERROR + " ["
                      + Modifier.toString(modifiers) + "]");
          }
  
      }
docs: Checks if the modifiers are valid for a class. If any of the modifiers is
  not valid an <code>IllegalArgumentException</code> is thrown.
  
  @param modifiers
  Modifiers.
  @param isInterface
  Are the modifiers from an interface?
  @param isInnerClass
  Is it an inner class?