code: public SharedFlowController createSharedFlow( RequestContext context, Class sharedFlowClass )
              throws InstantiationException, IllegalAccessException
      {
          assert SharedFlowController.class.isAssignableFrom( sharedFlowClass ) : sharedFlowClass.getName();
  
          if ( LOG.isDebugEnabled() )
          {
              LOG.debug( "Creating SharedFlowController of type " + sharedFlowClass.getName() );
          }
  
          SharedFlowController retVal = ( SharedFlowController ) getFlowControllerInstance( sharedFlowClass );
          HttpServletRequest request = context.getHttpRequest();
          HttpServletResponse response = context.getHttpResponse();
          retVal.create( request, response, getServletContext() );
  
          if ( LOG.isDebugEnabled() )
          {
              LOG.debug( "Storing new shared flow " + retVal + " in the session" );
          }
  
          retVal.persistInSession( request, response );
          return retVal;
      }
docs: Create a {@link SharedFlowController} of the given type.
  
  @param context a {@link RequestContext} object which contains the current request and response.
  @param sharedFlowClass the type of the desired SharedFlowController.
  @return the newly-created SharedFlowController, or <code>null</code> if none was found.