/** * Returns true if the passed <code>mdbClass</code> meets the requirements set by the EJB3 spec * about bean implementation classes. The passed <code>mdbClass</code> must not be an interface * and must be public and not final and not abstract. If it passes these requirements then this * method returns true. Else it returns false. * * @param mdbClass The MDB class * @return */ private boolean assertMDBClassValidity(final ClassInfo mdbClass) { final short flags = mdbClass.flags(); final String className = mdbClass.name().toString(); // must *not* be a interface if (Modifier.isInterface(flags)) { EjbLogger.EJB3_LOGGER.mdbClassCannotBeAnInterface(className); return false; } // bean class must be public, must *not* be abstract or final if (!Modifier.isPublic(flags) || Modifier.isAbstract(flags) || Modifier.isFinal(flags)) { EjbLogger.EJB3_LOGGER.mdbClassMustBePublicNonAbstractNonFinal(className); return false; } // valid class return true; }