📄 beanadapter.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: BeanAdapter.java
package org.apache.struts2.views.xslt;
import java.beans.*;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.StrutsException;
import org.w3c.dom.NodeList;
// Referenced classes of package org.apache.struts2.views.xslt:
// AbstractAdapterElement, AdapterFactory, AdapterNode
public class BeanAdapter extends AbstractAdapterElement
{
private static final Object NULLPARAMS[] = new Object[0];
private static Map propertyDescriptorCache;
private Log log;
public BeanAdapter()
{
log = LogFactory.getLog(getClass());
}
public BeanAdapter(AdapterFactory adapterFactory, AdapterNode parent, String propertyName, Object value)
{
log = LogFactory.getLog(getClass());
setContext(adapterFactory, parent, propertyName, value);
}
public String getTagName()
{
return getPropertyName();
}
public NodeList getChildNodes()
{
NodeList nl = super.getChildNodes();
if (log.isDebugEnabled() && nl != null)
{
log.debug((new StringBuilder()).append("BeanAdapter getChildNodes for: ").append(getTagName()).toString());
log.debug(nl.toString());
}
return nl;
}
protected List buildChildAdapters()
{
log.debug((new StringBuilder()).append("BeanAdapter building children. PropName = ").append(getPropertyName()).toString());
List newAdapters = new ArrayList();
Class type = getPropertyValue().getClass();
PropertyDescriptor props[] = getPropertyDescriptors(getPropertyValue());
if (props.length > 0)
{
PropertyDescriptor arr$[] = props;
int len$ = arr$.length;
int i$ = 0;
label0:
do
{
label1:
{
if (i$ >= len$)
break label0;
PropertyDescriptor prop = arr$[i$];
Method m = prop.getReadMethod();
if (m == null)
break label1;
log.debug((new StringBuilder()).append("Bean reading property method: ").append(m.getName()).toString());
String propertyName = prop.getName();
Object propertyValue;
try
{
propertyValue = m.invoke(getPropertyValue(), NULLPARAMS);
}
catch (Exception e)
{
if (e instanceof InvocationTargetException)
e = (Exception)((InvocationTargetException)e).getTargetException();
log.error(e);
break label1;
}
org.w3c.dom.Node childAdapter;
if (propertyValue == null)
childAdapter = getAdapterFactory().adaptNullValue(this, propertyName);
else
childAdapter = getAdapterFactory().adaptNode(this, propertyName, propertyValue);
if (childAdapter != null)
newAdapters.add(childAdapter);
if (log.isDebugEnabled())
log.debug((new StringBuilder()).append(this).append(" adding adapter: ").append(childAdapter).toString());
}
i$++;
} while (true);
} else
{
log.info((new StringBuilder()).append("Class ").append(type.getName()).append(" has no readable properties, ").append(" trying to adapt ").append(getPropertyName()).append(" with StringAdapter...").toString());
}
return newAdapters;
}
private synchronized PropertyDescriptor[] getPropertyDescriptors(Object bean)
{
PropertyDescriptor props[];
if (propertyDescriptorCache == null)
propertyDescriptorCache = new HashMap();
props = (PropertyDescriptor[])propertyDescriptorCache.get(bean.getClass());
if (props == null)
{
log.debug((new StringBuilder()).append("Caching property descriptor for ").append(bean.getClass().getName()).toString());
props = Introspector.getBeanInfo(bean.getClass(), java/lang/Object).getPropertyDescriptors();
propertyDescriptorCache.put(bean.getClass(), props);
}
return props;
IntrospectionException e;
e;
e.printStackTrace();
throw new StrutsException((new StringBuilder()).append("Error getting property descriptors for ").append(bean).append(" : ").append(e.getMessage()).toString());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -