View Javadoc

1   /**
2    * - Digitalis Internal Framework v2.0 - (C) 2007, Digitalis Informatica. Distribuicao e Gestao de Informatica, Lda.
3    * Estrada de Paco de Arcos num.9 - Piso -1 2780-666 Paco de Arcos Telefone: (351) 21 4408990 Fax: (351) 21 4408999
4    * http://www.digitalis.pt
5    */
6   package pt.digitalis.dif.presentation.entities.system.error;
7   
8   import java.util.Map;
9   
10  import pt.digitalis.dif.controller.ExceptionHandlers;
11  import pt.digitalis.dif.controller.interfaces.IDIFContext;
12  import pt.digitalis.dif.dem.annotations.entities.StageDefinition;
13  import pt.digitalis.dif.dem.annotations.stage.Context;
14  import pt.digitalis.dif.dem.annotations.stage.ExceptionHandler;
15  import pt.digitalis.dif.dem.annotations.stage.Execute;
16  import pt.digitalis.dif.dem.annotations.stage.InjectMessages;
17  import pt.digitalis.dif.dem.annotations.stage.View;
18  import pt.digitalis.dif.dem.annotations.stage.controller.DispatcherMode;
19  import pt.digitalis.dif.utils.extensions.cms.exception.ContentItemNotFoundException;
20  import pt.digitalis.dif.utils.extensions.cms.exception.ContentManagerException;
21  
22  /**
23   * @author Luis Pinto <a href="mailto:lpinto@digitalis.pt">lpinto@digitalis.pt</a><br/>
24   * @created Jul 4, 2011
25   */
26  @StageDefinition(name = "Content Manager Error Page", service = "errorhandlingservice")
27  @ExceptionHandler(exceptions = "pt.digitalis.dif.utils.extensions.cms.exception.ContentManagerException")
28  @View(target = "internal/errorHandlerView.jsp")
29  @DispatcherMode(authenticate = false, authorize = false)
30  public class ContentManagerErrorStage extends AbstractErrorHandler {
31  
32      /** the current stage context */
33      @Context
34      protected IDIFContext context;
35  
36      /** the current stage messages */
37      @InjectMessages
38      protected Map<String, String> messages;
39  
40      /**
41       * Execute Method
42       */
43      @Execute
44      protected void execute()
45      {
46          Exception exception = (Exception) context.getRequest().getAttribute(
47                  ExceptionHandlers.RAISED_EXCEPTION_ATTRIBUTE);
48  
49          exception = getExceptionWithinStack(ContentManagerException.class, exception);
50  
51          if (exception != null)
52          {
53              if (exception instanceof ContentItemNotFoundException)
54              {
55                  this.context.addStageResult("messageTitle", messages.get("contentNotFoundTitle"));
56                  this.context.addStageResult("messageContent", messages.get("contentNotFoundMessage"));
57              }
58          }
59      }
60  }