View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.myfaces.custom.redirectTracker;
20  
21  import javax.faces.event.PhaseEvent;
22  import javax.faces.event.PhaseId;
23  import javax.faces.event.PhaseListener;
24  
25  /**
26   * reinitialize the system after a tracked redirect
27   */
28  public class RedirectTrackerPhaseListener implements PhaseListener
29  {
30      public void afterPhase(PhaseEvent event)
31      {
32          if (event.getPhaseId().equals(PhaseId.RESTORE_VIEW))
33          {
34              RedirectTrackerManager manager = RedirectTrackerManager.getInstance(event.getFacesContext());
35              if (manager != null)
36              {
37                  manager.processTrackedRequest(event.getFacesContext());
38              }
39          }
40      }
41  
42      public void beforePhase(PhaseEvent event)
43      {
44          if (event.getPhaseId().equals(PhaseId.RESTORE_VIEW))
45          {
46              RedirectTrackerManager manager = RedirectTrackerManager.getInstance(event.getFacesContext());
47              if (manager != null)
48              {
49                  manager.clearSaveStateBean();
50              }
51          }
52      }
53  
54      public PhaseId getPhaseId()
55      {
56          return PhaseId.ANY_PHASE;
57      }
58  }