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.view.facelets;
20
21 import java.io.IOException;
22
23 import javax.el.ELException;
24 import javax.faces.FacesException;
25 import javax.faces.component.UIComponent;
26 import javax.faces.context.FacesContext;
27 import javax.faces.view.facelets.FaceletException;
28
29 /**
30 * The parent or root object in a FaceletHandler composition. The Facelet will take care of populating the passed
31 * UIComponent parent in relation to the create/restore lifecycle of JSF.
32 *
33 * @author Jacob Hookom
34 * @version $Id: Facelet.java 1187700 2011-10-22 12:19:37Z bommel $
35 */
36 public abstract class Facelet
37 {
38
39 /**
40 * The passed UIComponent parent will be populated/restored in accordance with the JSF 1.2 specification.
41 *
42 * @param facesContext
43 * The current FacesContext (Should be the same as FacesContext.getInstance())
44 * @param parent
45 * The UIComponent to populate in a compositional fashion. In most cases a Facelet will be base a
46 * UIViewRoot.
47 * @throws IOException
48 * @throws FacesException
49 * @throws FaceletException
50 * @throws ELException
51 */
52 public abstract void apply(FacesContext facesContext, UIComponent parent) throws IOException, FacesException,
53 FaceletException, ELException;
54 }