View Javadoc

1   /**
2    * 2008, Digitalis Informatica. All rights reserved. Distribuicao e Gestao de Informatica, Lda. Estrada de Paco de Arcos
3    * num.9 - Piso -1 2780-666 Paco de Arcos Telefone: (351) 21 4408990 Fax: (351) 21 4408999 http://www.digitalis.pt
4    */
5   
6   package pt.digitalis.dif.controller.interfaces;
7   
8   import java.util.List;
9   
10  import pt.digitalis.dif.controller.objects.Breadcrumb;
11  import pt.digitalis.dif.dem.interfaces.IStageInstance;
12  
13  /**
14   * Tracks all navigation history for a single session
15   *
16   * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a>
17   * @created 2008/07/20
18   */
19  public interface INavigationHistory {
20  
21      /**
22       * Adds a breadcrumb to the history
23       *
24       * @param crumb
25       *            the crumb to add
26       */
27      public void addBreadcrumb(Breadcrumb crumb);
28  
29      /**
30       * Adds a stage to the history
31       *
32       * @param stage
33       *            the stage to add
34       */
35      public void addStage(IStageInstance stage);
36  
37      /**
38       * Cleans up the navigation history after a logout process. Stages that are no longer accessible are discarded from
39       * the list. Will parse if the current user can access each stage, or if no user logged if the stages are publicly
40       * accessible.
41       *
42       * @param session
43       *            the current user session
44       */
45      public void cleanUpAfterLogout(IDIFSession session);
46  
47      /**
48       * @return all current gathered breadcrumbs ordered by first access time
49       */
50      List<Breadcrumb> getHistoryFirstAccess();
51  
52      /**
53       * @return all current gathered breadcrumbs ordered by last access time
54       */
55      List<Breadcrumb> getHistoryLastAccessed();
56  
57      /**
58       * Finds the previous breadcrumb for a given stage by first access
59       *
60       * @param stageToFindPrevious
61       * @return the previous stage ID (for the given stage)
62       */
63      public Breadcrumb getPreviousForByFirstAccess(String stageToFindPrevious);
64  
65      /**
66       * Finds the previous breadcrumb for a given stage by last access
67       *
68       * @param stageToFindPrevious
69       * @return the previous stage ID (for the given stage)
70       */
71      public Breadcrumb getPreviousForByLastAccess(String stageToFindPrevious);
72  
73      /**
74       * @return T is the history is empty
75       */
76      public boolean isEmpty();
77  
78      /**
79       * Removes a stage from the history
80       *
81       * @param stage
82       *            the stage to remove
83       */
84      public void removeStage(String stage);
85  }