001    package org.crsh.shell;
002    
003    import java.security.Principal;
004    
005    /** @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a> */
006    public interface ShellFactory {
007    
008      /**
009       * Create a shell object ready to be used.
010       *
011       * @param principal the user principal it may be null in case of an unauthenticated user
012       * @return the shell instance
013       */
014      Shell create(Principal principal);
015    
016    }