⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 beanadapter.java

📁 struts 2 核心包 的源码 有错误是难免的
💻 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 + -