package javax.faces.component;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.io.IOException;
import java.io.Serializable;
import java.lang.reflect.Array;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.AbstractCollection;
import java.util.AbstractSet;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.WeakHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.el.ELException;
import javax.el.ValueExpression;
import javax.faces.FacesException;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.FacesEvent;
import javax.faces.event.FacesListener;
import javax.faces.render.RenderKit;
import javax.faces.render.Renderer;
public abstract class UIComponentBase extends UIComponent
{
private static Logger log;
private static Map<Class<?>, Map<String, PropertyDescriptor>> descriptors;
private Map<String, PropertyDescriptor> pdMap = null;
private static Object[] empty;
private AttributesMap attributes = null;
private String clientId = null;
private String id = null;
private UIComponent parent = null;
private boolean rendered = true;
private boolean renderedSet = false;
private String rendererType = null;
private List<UIComponent> children = null;
private static final String SEPARATOR_STRING = ":";
private Map<String, UIComponent> facets = null;
private List<FacesListener> listeners;
private static final int MY_STATE = 0;
private static final int CHILD_STATE = 1;
private Object[] values;
private boolean transientFlag = false;
private static final Object[] EMPTY_ARRAY;
private static final Iterator EMPTY_ITERATOR;
public UIComponentBase()
{
populateDescriptorsMapIfNecessary();
}
private void populateDescriptorsMapIfNecessary() {
Class clazz = getClass();
this.transientFlag = ((Map)descriptors.get(clazz));
if (null != this.transientFlag) {
return;
}
PropertyDescriptor[] pd = getPropertyDescriptors();
if (pd != null) {
this.transientFlag = new WeakHashMap(pd.length);
PropertyDescriptor[] arr$ = pd; int len$ = arr$.length; for (int i$ = 0; i$ < len$; ++i$) { PropertyDescriptor aPd = arr$[i$];
this.transientFlag.put(aPd.getName(), aPd);
}
if (log.isLoggable(Level.FINE)) {
log.log(Level.FINE, "fine.component.populating_descriptor_map", new Object[] { clazz, Thread.currentThread().getName() });
}
Map reCheckMap = (Map)descriptors.get(clazz);
if (null != reCheckMap)
return;
descriptors.put(clazz, this.transientFlag);
}
}
private PropertyDescriptor getPropertyDescriptor(String name)
{
if (this.transientFlag != null)
return ((PropertyDescriptor)this.transientFlag.get(name));
return null;
}
private PropertyDescriptor[] getPropertyDescriptors()
{
PropertyDescriptor[] pd = null;
try {
pd = Introspector.getBeanInfo(getClass()).getPropertyDescriptors();
}
catch (IntrospectionException e) {
throw new FacesException(e);
}
return pd;
}
public Map<String, Object> getAttributes()
{
if (this.attributes == null)
this.attributes = new AttributesMap(this, null);
return this.attributes;
}
/**
* @deprecated
*/
public ValueBinding getValueBinding(String name)
{
if (name == null)
throw new NullPointerException();
ValueBinding result = null;
ValueExpression ve = null;
if (null != (ve = getValueExpression(name)))
{
if (ve.getClass() == ValueExpressionValueBindingAdapter.class) {
result = ((ValueExpressionValueBindingAdapter)ve).getWrapped();
}
else
{
result = new ValueBindingValueExpressionAdapter(ve);
}
}
return result;
}
/**
* @deprecated
*/
public void setValueBinding(String name, ValueBinding binding)
{
if (name == null)
throw new NullPointerException();
if (binding != null) {
ValueExpressionValueBindingAdapter adapter = new ValueExpressionValueBindingAdapter(binding);
setValueExpression(name, adapter);
}
else setValueExpression(name, null);
}
public ValueExpression getValueExpression(String name)
{
return super.getValueExpression(name);
}
public void setValueExpression(String name, ValueExpression binding)
{
super.setValueExpression(name, binding);
}
public String getClientId(FacesContext context)
{
if (context == null) {
throw new NullPointerException();
}
if (this.clientId == null) {
UIComponent parent = getNamingContainer();
String parentId = null;
if (parent != null) {
parentId = parent.getContainerClientId(context);
}
this.clientId = this.id;
if (this.clientId == null)
this.clientId = context.getViewRoot().createUniqueId();
if (parentId != null) {
this.clientId = parentId + ':' + this.clientId;
}
Renderer renderer = getRenderer(context);
if (renderer != null)
this.clientId = renderer.convertClientId(context, this.clientId);
}
return this.clientId;
}
private UIComponent getNamingContainer()
{
UIComponent namingContainer = getParent();
while (namingContainer != null) {
if (namingContainer instanceof NamingContainer)
return namingContainer;
namingContainer = namingContainer.getParent();
}
return null;
}
public String getId()
{
return this.id;
}
public void setId(String id)
{
validateId(id);
this.id = id;
this.clientId = null;
}
public UIComponent getParent()
{
return this.parent;
}
public void setParent(UIComponent parent)
{
this.parent = parent;
}
public boolean isRendered()
{
if (this.renderedSet)
return this.rendered;
ValueExpression ve = getValueExpression("rendered");
if (ve != null) {
boolean result = false;
try {
result = !(Boolean.FALSE.equals(ve.getValue(getFacesContext().getELContext())));
}
catch (ELException e) {
throw new FacesException(e);
}
return result;
}
return this.rendered;
}
public void setRendered(boolean rendered)
{
this.rendered = rendered;
this.renderedSet = true;
}
public String getRendererType()
{
if (this.rendererType != null)
return this.rendererType;
ValueExpression ve = getValueExpression("rendererType");
if (ve != null) {
String result = null;
try {
result = (String)ve.getValue(getFacesContext().getELContext());
}
catch (ELException e) {
throw new FacesException(e);
}
return result;
}
return null;
}
public void setRendererType(String rendererType)
{
this.rendererType = rendererType;
}
public boolean getRendersChildren()
{
boolean result = false;
Renderer renderer = null;
if (getRendererType() != null)
if (null != (renderer = getRenderer(getFacesContext())))
{
result = renderer.getRendersChildren();
}
return result;
}
public List<UIComponent> getChildren()
{
if (this.children == null)
this.children = new
没有合适的资源?快使用搜索试试~ 我知道了~
javaee_src.zip
共1088个文件
java:1075个
properties:12个
mf:1个
4星 · 超过85%的资源 需积分: 9 105 下载量 149 浏览量
2009-02-20
13:22:25
上传
评论
收藏 629KB ZIP 举报
温馨提示
class文件生成java源代码 javaee src,javaee源代码
资源推荐
资源详情
资源评论
收起资源包目录
javaee_src.zip (1088个子文件)
UIComponentBase.java 53KB
MimeMultipart.java 42KB
Session.java 28KB
MimeUtility.java 28KB
UIComponentClassicTagBase.java 25KB
MailcapCommandMap.java 25KB
ContextFinder.java 24KB
MimeMessage.java 24KB
NumberConverter.java 22KB
ImplicitObjectELResolver.java 20KB
UIInput.java 20KB
MimeBodyPart.java 19KB
UIData.java 18KB
MimetypesFileTypeMap.java 17KB
InternetAddress.java 17KB
HtmlInputSecret.java 16KB
HtmlPanelGrid.java 16KB
DateTimeConverter.java 16KB
HtmlInputText.java 15KB
HtmlSelectManyCheckbox.java 15KB
HtmlSelectOneRadio.java 15KB
HtmlDataTable.java 15KB
HtmlSelectManyListbox.java 15KB
HtmlSelectOneListbox.java 15KB
ResultSetDataModel.java 15KB
UIViewRoot.java 14KB
HtmlInputTextarea.java 14KB
HtmlCommandLink.java 14KB
HtmlOutputLink.java 14KB
HtmlCommandButton.java 14KB
HtmlSelectManyMenu.java 14KB
HtmlSelectOneMenu.java 14KB
HtmlSelectBooleanCheckbox.java 13KB
ParameterList.java 12KB
Folder.java 12KB
HtmlOutputLabel.java 11KB
HtmlGraphicImage.java 11KB
URLName.java 11KB
HtmlForm.java 11KB
InternetHeaders.java 10KB
MailDateParser.java 9KB
HttpMethodSpec.java 9KB
DataHandler.java 9KB
ScriptFreeTLV.java 9KB
FactoryFinder.java 9KB
EJBMethodPermission.java 8KB
AbstractUnmarshallerImpl.java 8KB
AbstractMarshallerImpl.java 8KB
BeanELResolver.java 8KB
LifeCycleManager.java 8KB
HtmlMessages.java 8KB
HttpServlet.java 8KB
HtmlMessage.java 8KB
SharedFileInputStream.java 7KB
LoopTagSupport.java 7KB
LocaleSupport.java 7KB
MethodBindingMethodExpressionAdapter.java 7KB
SaveOrganizationTest.java 7KB
ValueExpressionValueBindingAdapter.java 7KB
MethodExpressionMethodBindingAdapter.java 7KB
Service.java 7KB
PermittedTaglibsTLV.java 7KB
UISelectMany.java 6KB
UIComponent.java 6KB
ValueBindingValueExpressionAdapter.java 6KB
MessageFactory.java 6KB
MessageFactory.java 6KB
MessageFactory.java 6KB
MessageFactory.java 6KB
Application.java 6KB
URLPatternSpec.java 6KB
WebUserDataPermission.java 6KB
UICommand.java 6KB
DoubleRangeValidator.java 6KB
HeaderTokenizer.java 6KB
Flags.java 5KB
LongRangeValidator.java 5KB
MimeTypeParameterList.java 5KB
Message.java 5KB
Transport.java 5KB
ExternalContext.java 5KB
DatatypeConverter.java 5KB
ScopedAttributeELResolver.java 5KB
UISelectItem.java 5KB
StreamReaderDelegate.java 5KB
FactoryFinder.java 5KB
CompositeELResolver.java 5KB
MimeType.java 5KB
MimeHeaders.java 5KB
TagInfo.java 4KB
JAXBSource.java 4KB
LengthValidator.java 4KB
ConverterTag.java 4KB
Config.java 4KB
ConnectionFactory.java 4KB
Message.java 4KB
XMLInputFactory.java 4KB
MailDateFormat.java 4KB
ValidatorTag.java 4KB
NoBodyResponse.java 4KB
共 1088 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
- 阿尔迪2014-07-29很不错,有用!!
- liaohy11252013-05-10很不错,有用!!
- 慢慢的蜗牛0o02013-11-11很好,比较全
- fofola2016-10-03可以 还不错
- dinghua_xuexi2013-01-24很好,比较全
gamebox1
- 粉丝: 13
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 最通俗易懂的 MongoDB 非结构化文档存储数据库教程.zip
- 以mongodb为数据库的订单物流小项目.zip
- 腾讯云-mongodb数据库, 项目部署.zip
- 腾讯 APIJSON 的 MongoDB 数据库插件.zip
- 理解非关系型数据库和关系型数据库的区别.zip
- 操作简单的Mongodb网页web管理工具,基于Spring Boot2.0支持mongodb集群.zip
- tms-mongodb-web,提供访问mongodb数据的REST API和可灵活扩展的mongodb web 客户端.zip
- SpringBoot整合mongodb学习MongoTemplate和MongoRepository两种方式CRUD使用.zip
- SpringBoot整合MongoDB实现对数据库的CRUD小demo.zip
- Python操作MongoDB数据库的基本一些操作 .zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功