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.application; 20 21 import java.util.Map; 22 import java.util.Set; 23 24 import javax.faces.application.ConfigurableNavigationHandler; 25 import javax.faces.application.NavigationCase; 26 import javax.faces.application.NavigationHandler; 27 import javax.faces.context.FacesContext; 28 29 /** 30 * This class is used as a double wrapper for NavigationHandler 31 * and ConfigurableNavigationHandler to be backwards compatible 32 * to the pre JSF 2.0 NavigationHandlers which are not 33 * ConfigurableNavigationHandlers (since JSF 2.0 the standard 34 * NavigationHandler implementation has to inherit from 35 * ConfigurableNavigationHandler). 36 * 37 * It just passes through handleNavigation() to the wrapped 38 * NavigationHandler and getNavigationCase() and getNavigationCases() 39 * to the wrapped ConfigurableNavigationHandler. 40 * 41 * @author Jakob Korherr (latest modification by $Author$) 42 * @version $Revision$ $Date$ 43 */ 44 public class BackwardsCompatibleNavigationHandlerWrapper 45 extends ConfigurableNavigationHandler 46 { 47 48 private NavigationHandler _wrapped; 49 private ConfigurableNavigationHandler _doubleWrapped; 50 51 public BackwardsCompatibleNavigationHandlerWrapper(NavigationHandler wrapped, 52 ConfigurableNavigationHandler doubleWrapped) 53 { 54 _wrapped = wrapped; 55 _doubleWrapped = doubleWrapped; 56 } 57 58 @Override 59 public NavigationCase getNavigationCase(FacesContext context, 60 String fromAction, String outcome) 61 { 62 return _doubleWrapped.getNavigationCase(context, fromAction, outcome); 63 } 64 65 @Override 66 public Map<String, Set<NavigationCase>> getNavigationCases() 67 { 68 return _doubleWrapped.getNavigationCases(); 69 } 70 71 @Override 72 public void handleNavigation(FacesContext context, String fromAction, String outcome) 73 { 74 _wrapped.handleNavigation(context, fromAction, outcome); 75 } 76 77 }