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

📄 xmlclassmetainfomanager.java

📁 Xfire文件 用于开发web service 的一个开源工具 很好用的
💻 JAVA
字号:
package org.codehaus.xfire.aegis;import java.io.InputStream;import java.util.HashMap;import java.util.Map;import javax.xml.stream.XMLStreamException;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.codehaus.xfire.XFireRuntimeException;import org.codehaus.xfire.util.jdom.StaxBuilder;import org.jdom.Document;import org.jdom.Element;import org.jdom.JDOMException;import org.jdom.xpath.XPath;/** * @author <a href="mailto:tsztelak@gmail.com">Tomasz Sztelak</a> *  */public class XMLClassMetaInfoManager {	private static final Log log = LogFactory.getLog(XMLClassMetaInfoManager.class);		private Map documents = new HashMap();	/**	 * @param clazz	 * @return	 */	public Document getDocument(Class clazz) {		if (clazz == null)			return null;		Document doc = (Document) documents.get(clazz.getName());		if (doc != null) {			return doc;		}		String path = '/' + clazz.getName().replace('.', '/') + ".aegis.xml";		InputStream is = clazz.getResourceAsStream(path);		if (is == null) {			log.debug("Mapping file : " + path + " not found.");			return null;		}		log.debug("Found mapping file : " + path);		try {			doc = new StaxBuilder().build(is);			documents.put(clazz.getName(), doc);			return doc;		} catch (XMLStreamException e) {			log.error("Error loading file " + path, e);		}		return null;	}			/**	 * @param clazz	 * @param encodingStyleURI	 * @return	 */	public Element findMapping(Class clazz, String encodingStyleURI)    {        Document doc = getDocument(clazz);        if(doc == null) return null;                Element mapping = getMatch(doc, "/mappings/mapping[@uri='" + encodingStyleURI + "']");        if (mapping == null)        {            mapping = getMatch(doc, "/mappings/mapping[not(@uri)]");        }                return mapping;    }		public Element getMatch(Object doc, String xpath)    {        try        {            XPath path = XPath.newInstance(xpath);            return (Element)path.selectSingleNode(doc);        }        catch(JDOMException e)        {            throw new XFireRuntimeException("Error evaluating xpath " + xpath, e);        }    }	public Element getParamter(Element elem, int i){		return getMatch(elem, "parameter[@index='" + i + "']");	}		public Element getProperty(Element mapping, String name){		return  getMatch(mapping, "./property[@name='" + name + "']");		}	public Element getComponent(Element mapping, String name){		return  getMatch(mapping, "./component[@name='" + name + "']");		}		public Element getMethod(Element mapping, String name){		return  getMatch(mapping, "./method[@name='" + name + "']");		}	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -