ejb3/src/main/java/org/jboss/as/ejb3/deployment/processors/SessionBeanComponentDescriptionFactory.java
private static boolean assertSessionBeanClassValidity(final ClassInfo sessionBeanClass) {
        final short flags = sessionBeanClass.flags();
        final String className = sessionBeanClass.name().toString();
        // must *not* be an interface
        if (Modifier.isInterface(flags)) {
            EjbLogger.DEPLOYMENT_LOGGER.sessionBeanClassCannotBeAnInterface(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.DEPLOYMENT_LOGGER.sessionBeanClassMustBePublicNonAbstractNonFinal(className);
            return false;
        }
        // valid class
        return true;
    }
private static boolean assertSessionBeanClassValidity(final ClassInfo sessionBeanClass) {
        final short flags = sessionBeanClass.flags();
        final String className = sessionBeanClass.name().toString();
        // must *not* be an interface
        if (Modifier.isInterface(flags)) {
            EjbLogger.DEPLOYMENT_LOGGER.sessionBeanClassCannotBeAnInterface(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.DEPLOYMENT_LOGGER.sessionBeanClassMustBePublicNonAbstractNonFinal(className);
            return false;
        }
        // valid class
        return true;
    }
private static boolean assertSessionBeanClassValidity ( final ClassInfo sessionBeanClass ) { final short flags = sessionBeanClass . flags ( ) ; final String className = sessionBeanClass . name ( ) . toString ( ) ; // must *not* be an interface if ( Modifier . isInterface ( flags ) ) { EjbLogger . DEPLOYMENT_LOGGER . sessionBeanClassCannotBeAnInterface ( 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 . DEPLOYMENT_LOGGER . sessionBeanClassMustBePublicNonAbstractNonFinal ( className ) ; return false ; } // valid class return true ; }
Returns true if the passed <code>sessionBeanClass</code> meets the requirements set by the EJB3 spec about
bean implementation classes. The passed <code>sessionBeanClass</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 sessionBeanClass The session bean class
@return
Returns true if the passed <code > sessionBeanClass< / code > meets the requirements set by the EJB3 spec about bean implementation classes . The passed <code > sessionBeanClass< / 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 .