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

📄 xmlreaderadapter.java

📁 webwork source
💻 JAVA
字号:
/** * WebWork, Web Application Framework * * Distributable under Apache license. * See terms of license at opensource.org */package webwork.view.xslt.SAXAdapter;import org.apache.commons.logging.*;import org.xml.sax.*;import org.xml.sax.helpers.DefaultHandler;import java.io.IOException;import java.util.ArrayList;import java.util.List;/** * XMLReaderAdapter converts a java bean to its xml representation. It does * this by simulating a SAX XMLReader which an xslt processor can use as * a SAXSource. * * The actual work is done in XMLWalker as the interface XMLReader is stateful * in respect to the input source. So this class is actually a facade to the * stateless class @see XMLWalker * * @author <a href="mailto:meier@o-matic.de">Philipp Meier</a> */public class XMLReaderAdapter implements Locator, XMLReader{   private String systemId;   private Object object;   private String root = null;   private ContentHandler contentHandler = new DefaultHandler();   private XMLWalker walker;   public XMLReaderAdapter(XMLWalker walker, Object object)   {      this(walker, object, "data");   }   public XMLReaderAdapter(XMLWalker walker, Object object, String root)   {      this.walker = walker;      this.object = object;      this.root = root;   }   public void parse() throws IOException, SAXException   {      if (object == null)      {         throw new SAXException("no object to parse defined " + "(use XMLReaderAdapter.setObject)");      }      if (contentHandler == null)      {         throw new SAXException("no content handler defined " + "(use XMLReaderAdapter.setContentHandler");      }      contentHandler.setDocumentLocator(this);      contentHandler.startDocument();      /** Keeps track of walked instances to detect circular references. **/      List walkedInstances = new ArrayList();      walker.walk(contentHandler, object, root, walkedInstances);      contentHandler.endDocument();   }   /**    * SAX Reader/Locator Dummy Implementation    */   public String getPublicId()   {      return null;   }   public String getSystemId()   {      return systemId;   }   public int getLineNumber()   {      return -1;   }   public int getColumnNumber()   {      return -1;   }   public void setEntityResolver(EntityResolver resolver)   {   }   public EntityResolver getEntityResolver()   {      return null;   }   public void setDTDHandler(DTDHandler handler)   {   }   public DTDHandler getDTDHandler()   {      return null;   }   public void setContentHandler(ContentHandler handler)   {      this.contentHandler = handler;   }   public ContentHandler getContentHandler()   {      return contentHandler;   }   public void setErrorHandler(ErrorHandler handler)   {   }   public ErrorHandler getErrorHandler()   {      return null;   }   public void parse(InputSource source) throws IOException, SAXException   {      parse();   }   public void parse(String s) throws IOException, SAXException   {      parse();   }   public void setObject(Object object)   {      this.object = object;   }   public void setRoot(String root)   {      this.root = root;   }   public boolean getFeature(String featureId) throws SAXNotRecognizedException   {      return false;   }   public void setFeature(String featureId, boolean on) throws SAXNotRecognizedException, SAXNotSupportedException   {   }   public Object getProperty(String name) throws SAXNotRecognizedException   {      throw new SAXNotRecognizedException(name);   }   public void setProperty(String propertyId, Object property) throws SAXNotRecognizedException, SAXNotSupportedException   {   }}

⌨️ 快捷键说明

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