/**
  * 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
  */
 private static boolean assertSessionBeanClassValidity(final ClassInfo sessionBeanClass) {
   final short flags = sessionBeanClass.flags();
   final String className = sessionBeanClass.name().toString();
   // must *not* be a interface
   if (Modifier.isInterface(flags)) {
     EjbLogger.EJB3_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.EJB3_LOGGER.sessionBeanClassMustBePublicNonAbstractNonFinal(className);
     return false;
   }
   // valid class
   return true;
 }