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   */
20  package org.apache.myfaces.orchestra.viewController;
21  
22  /***
23   * Each view controller configured with the constructor will be asked to map the given viewId.
24   * The first one not returning NULL wins. 
25   */
26  public class CompositeViewControllerNameMapper implements ViewControllerNameMapper
27  {
28  	private final ViewControllerNameMapper[] viewControllerNameMappers;
29  
30  	public CompositeViewControllerNameMapper(ViewControllerNameMapper[] viewControllerNameMappers)
31  	{
32  		this.viewControllerNameMappers = new ViewControllerNameMapper[viewControllerNameMappers.length];
33  		System.arraycopy(viewControllerNameMappers, 0, this.viewControllerNameMappers, 0, viewControllerNameMappers.length);
34  	}
35  
36  	public String mapViewId(String viewId)
37  	{
38  		for (int i = 0; i<viewControllerNameMappers.length; i++)
39  		{
40  			String beanName = viewControllerNameMappers[i].mapViewId(viewId);
41  			if (beanName != null)
42  			{
43  				return beanName;
44  			}
45  		}
46  
47  		return null;
48  	}
49  }