📄 componentfactory.java
字号:
/* * Copyright 2002-2004 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package de.mindmatters.faces.application;import java.util.Iterator;import javax.faces.application.Application;import javax.faces.component.UIComponent;import javax.faces.context.FacesContext;import javax.faces.el.ValueBinding;/** * <strong>Factory</strong> for managing {@link UIComponent}s. Used by * {@link ApplicationImpl}. * * @author Andreas Kuhrwahl * */public interface ComponentFactory { /** * Register a new mapping of component type to the name of the corresponding * {@link UIComponent} class. This allows subsequent calls to * <code>createComponent()</code> to serve as a factory for * {@link UIComponent} instances. * * @param application * the <strong>original</strong> Application of the underlying * JSF implementation * @param componentType * The component type to be registered * @param componentClass * The fully qualified class name of the corresponding * {@link UIComponent} implementation * @exception NullPointerException * if <code>componentType</code> or * <code>componentClass</code> is <code>null</code> */ void addComponent(Application application, String componentType, String componentClass); /** * Instantiate and return a new {@link UIComponent} instance of the class * specified by a previous call to <code>addComponent()</code> for the * specified component type. * * @param application * the <strong>original</strong> Application of the underlying * JSF implementation * @param componentType * The component type for which to create and return a new * {@link UIComponent} instance * @return The created component * @exception javax.faces.FacesException * if a {@link UIComponent} of the specified type cannot be * created * @exception NullPointerException * if <code>componentType</code> is <code>null</code> */ UIComponent createComponent(Application application, String componentType); /** * Call the <code>getValue()</code> method on the specified * {@link ValueBinding}. If it returns a {@link UIComponent} instance, * return it as the value of this method. If it does not, instantiate a new * {@link UIComponent} instance of the specified component type, pass the * new component to the <code>setValue()</code> method of the specified * {@link ValueBinding}, and return it. * * @param application * the <strong>original</strong> Application of the underlying * JSF implementation * @param componentBinding * {@link ValueBinding} representing a component value binding * expression (typically specified by the <code>component</code> * attribute of a custom tag) * @param context * {@link FacesContext} for the current request * @param componentType * Component type to create if the {@link ValueBinding} does not * return a component instance * @return The created component * @exception javax.faces.FacesException * if a {@link UIComponent} cannot be created * @exception NullPointerException * if any parameter is <code>null</code> */ UIComponent createComponent(Application application, ValueBinding componentBinding, FacesContext context, String componentType); /** * Return an <code>Iterator</code> over the set of currently defined * component types for this <code>Application</code>. * * @param application * the <strong>original</strong> Application of the underlying * JSF implementation * @return An Iterator over the set of currently defined component types */ Iterator getComponentTypes(Application application);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -