ejb3/src/main/java/org/jboss/as/ejb3/deployment/processors/BusinessViewAnnotationProcessor.java
private void processViewAnnotations(final DeploymentUnit deploymentUnit, final Class<?> sessionBeanClass, final SessionBeanComponentDescription sessionBeanComponentDescription) throws DeploymentUnitProcessingException {
        final Collection<Class<?>> remoteBusinessInterfaces = this.getRemoteBusinessInterfaces(deploymentUnit, sessionBeanClass);
        if (remoteBusinessInterfaces != null && !remoteBusinessInterfaces.isEmpty()) {
            sessionBeanComponentDescription.addRemoteBusinessInterfaceViews(this.toString(remoteBusinessInterfaces));
        }

        // fetch the local business interfaces of the bean
        Collection<Class<?>> localBusinessInterfaces = this.getLocalBusinessInterfaces(deploymentUnit, sessionBeanClass);
        if (localBusinessInterfaces != null && !localBusinessInterfaces.isEmpty()) {
            sessionBeanComponentDescription.addLocalBusinessInterfaceViews(this.toString(localBusinessInterfaces));
        }

        if (hasNoInterfaceView(sessionBeanClass)) {
            sessionBeanComponentDescription.addNoInterfaceView();
        }

        // EJB 3.1 FR 4.9.7 & 4.9.8, if the bean exposes no views
        if (hasNoViews(sessionBeanComponentDescription)) {
            final Set<Class<?>> potentialBusinessInterfaces = getPotentialBusinessInterfaces(sessionBeanClass);
            if (potentialBusinessInterfaces.isEmpty()) {
                sessionBeanComponentDescription.addNoInterfaceView();
            } else if (potentialBusinessInterfaces.size() == 1) {
                sessionBeanComponentDescription.addLocalBusinessInterfaceViews(potentialBusinessInterfaces.iterator().next().getName());
            } else if (isEjbVersionGreaterThanOrEqualTo32(deploymentUnit)) {
                // EJB 3.2 spec states (section 4.9.7):
                // ... or if the bean class is annotated with neither the Local nor the Remote annotation, all implemented interfaces (excluding the interfaces listed above)
                // are assumed to be local business interfaces of the bean
                sessionBeanComponentDescription.addLocalBusinessInterfaceViews(toString(potentialBusinessInterfaces));
            }
        }
    }
private void processViewAnnotations(final DeploymentUnit deploymentUnit, final Class<?> sessionBeanClass, final SessionBeanComponentDescription sessionBeanComponentDescription) throws DeploymentUnitProcessingException {
        final Collection<Class<?>> remoteBusinessInterfaces = this.getRemoteBusinessInterfaces(deploymentUnit, sessionBeanClass);
        if (remoteBusinessInterfaces != null && !remoteBusinessInterfaces.isEmpty()) {
            sessionBeanComponentDescription.addRemoteBusinessInterfaceViews(this.toString(remoteBusinessInterfaces));
        }

        // fetch the local business interfaces of the bean
        Collection<Class<?>> localBusinessInterfaces = this.getLocalBusinessInterfaces(deploymentUnit, sessionBeanClass);
        if (localBusinessInterfaces != null && !localBusinessInterfaces.isEmpty()) {
            sessionBeanComponentDescription.addLocalBusinessInterfaceViews(this.toString(localBusinessInterfaces));
        }

        if (hasNoInterfaceView(sessionBeanClass)) {
            sessionBeanComponentDescription.addNoInterfaceView();
        }

        // EJB 3.1 FR 4.9.7 & 4.9.8, if the bean exposes no views
        if (hasNoViews(sessionBeanComponentDescription)) {
            final Set<Class<?>> potentialBusinessInterfaces = getPotentialBusinessInterfaces(sessionBeanClass);
            if (potentialBusinessInterfaces.isEmpty()) {
                sessionBeanComponentDescription.addNoInterfaceView();
            } else if (potentialBusinessInterfaces.size() == 1) {
                sessionBeanComponentDescription.addLocalBusinessInterfaceViews(potentialBusinessInterfaces.iterator().next().getName());
            } else if (isEjbVersionGreaterThanOrEqualTo32(deploymentUnit)) {
                // EJB 3.2 spec states (section 4.9.7):
                // ... or if the bean class is annotated with neither the Local nor the Remote annotation, all implemented interfaces (excluding the interfaces listed above)
                // are assumed to be local business interfaces of the bean
                sessionBeanComponentDescription.addLocalBusinessInterfaceViews(toString(potentialBusinessInterfaces));
            }
        }
    }
private void processViewAnnotations ( final DeploymentUnit deploymentUnit , final Class < ? > sessionBeanClass , final SessionBeanComponentDescription sessionBeanComponentDescription ) throws DeploymentUnitProcessingException { final Collection < Class < ? > > remoteBusinessInterfaces = this . getRemoteBusinessInterfaces ( deploymentUnit , sessionBeanClass ) ; if ( remoteBusinessInterfaces != null && ! remoteBusinessInterfaces . isEmpty ( ) ) { sessionBeanComponentDescription . addRemoteBusinessInterfaceViews ( this . toString ( remoteBusinessInterfaces ) ) ; } // fetch the local business interfaces of the bean Collection < Class < ? > > localBusinessInterfaces = this . getLocalBusinessInterfaces ( deploymentUnit , sessionBeanClass ) ; if ( localBusinessInterfaces != null && ! localBusinessInterfaces . isEmpty ( ) ) { sessionBeanComponentDescription . addLocalBusinessInterfaceViews ( this . toString ( localBusinessInterfaces ) ) ; } if ( hasNoInterfaceView ( sessionBeanClass ) ) { sessionBeanComponentDescription . addNoInterfaceView ( ) ; } // EJB 3.1 FR 4.9.7 & 4.9.8, if the bean exposes no views if ( hasNoViews ( sessionBeanComponentDescription ) ) { final Set < Class < ? > > potentialBusinessInterfaces = getPotentialBusinessInterfaces ( sessionBeanClass ) ; if ( potentialBusinessInterfaces . isEmpty ( ) ) { sessionBeanComponentDescription . addNoInterfaceView ( ) ; } else if ( potentialBusinessInterfaces . size ( ) == 1 ) { sessionBeanComponentDescription . addLocalBusinessInterfaceViews ( potentialBusinessInterfaces . iterator ( ) . next ( ) . getName ( ) ) ; } else if ( isEjbVersionGreaterThanOrEqualTo32 ( deploymentUnit ) ) { // EJB 3.2 spec states (section 4.9.7): // ... or if the bean class is annotated with neither the Local nor the Remote annotation, all implemented interfaces (excluding the interfaces listed above) // are assumed to be local business interfaces of the bean sessionBeanComponentDescription . addLocalBusinessInterfaceViews ( toString ( potentialBusinessInterfaces ) ) ; } } }
Processes the session bean for remote and local views and updates the {@link SessionBeanComponentDescription}
accordingly

@param deploymentUnit The deployment unit
@param sessionBeanClass The bean class
@param sessionBeanComponentDescription
The component description
@throws DeploymentUnitProcessingException
Processes the session bean for remote and local views and updates the { @link SessionBeanComponentDescription } accordingly