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

📄 saxnulltransformerfactory.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    {      systemId = id;    }    public void setResult (Result result)    {      if (result.getSystemId () != null)        systemId = result.getSystemId ();            try        {                    // output to partial SAX event stream?          if (result instanceof SAXResult)            {              SAXResult 	r = (SAXResult) result;                            setContentHandler (r.getHandler ());              setProperty (LEXICAL_HANDLER, r.getLexicalHandler ());              // DTD info is filtered out by javax.transform                            // output to DOM tree?            }          else if (result instanceof DOMResult)            {              DomTerminus	out = new DomTerminus ((DOMResult) result);              setContentHandler (out.getContentHandler ());              setProperty (LEXICAL_HANDLER,                           out.getProperty (LEXICAL_HANDLER));              // save DTD-derived info, if any.              setDTDHandler (out.getDTDHandler ());              setProperty (DECL_HANDLER,                           out.getProperty (DECL_HANDLER));              // node is saved into result on endDocument()              // output to (XML) text?            }          else if (result instanceof StreamResult)            {              StreamResult	r = (StreamResult) result;              XMLWriter		out;              // FIXME:  when do output properties take effect?              // encoding, standalone decl, xml/xhtml/... ...              // FIXME:  maybe put nsfix filter up front              try                {                  if (r.getWriter () != null)                    out = new XMLWriter (r.getWriter ());                  else if (r.getOutputStream () != null)                    out = new XMLWriter (r.getOutputStream ());                  else if (r.getSystemId () != null)                    out = new XMLWriter (                                         getOutputStream (r.getSystemId ()));                  else                    throw new IllegalArgumentException (                                                        "bad StreamResult");                }              catch (IOException e)                {                  e.printStackTrace ();                  // on jdk 1.4, pass the root cause ...                  throw new IllegalArgumentException (e.getMessage ());                }              // out.setExpandingEntities (true);              // out.setPrettyPrinting (true);              // out.setXhtml (true);              setContentHandler (out);              setProperty (LEXICAL_HANDLER, out);              // save DTD info, if any; why not?              setDTDHandler (out);              setProperty (DECL_HANDLER, out);            }                  }      catch (SAXException e)        {          // SAXNotSupportedException or SAXNotRecognizedException:          // "can't happen" ... but SAXException for DOM build probs          // could happen, so ...          // on jdk 1.4, pass the root cause ...          throw new IllegalArgumentException (e.getMessage ());        }    }  }  // an interface that adds no value  static class LocatorAdapter    extends LocatorImpl    implements SourceLocator  {      LocatorAdapter (SAXParseException e)    {      setSystemId (e.getSystemId ());      setPublicId (e.getPublicId ());      setLineNumber (e.getLineNumber ());      setColumnNumber (e.getColumnNumber ());    }      }  // another interface that adds no value  static class ListenerAdapter    implements ErrorHandler  {        NullTransformer	transformer;        ListenerAdapter (NullTransformer t)    {      transformer = t;    }        private TransformerException map (SAXParseException e)    {      return new TransformerException (                                       e.getMessage (),                                       new LocatorAdapter (e),                                       e);    }    public void error (SAXParseException e)      throws SAXParseException    {      try        {          if (transformer.errListener != null)            transformer.errListener.error (map (e));        }      catch (TransformerException ex)        {          transformer.ex = ex;          throw e;        }    }    public void fatalError (SAXParseException e)      throws SAXParseException    {      try        {          if (transformer.errListener != null)            transformer.errListener.fatalError (map (e));          else            throw map (e);        } catch (TransformerException ex) {          transformer.ex = ex;          throw e;        }    }    public void warning (SAXParseException e)      throws SAXParseException    {      try        {          if (transformer.errListener != null)            transformer.errListener.warning (map (e));        }      catch (TransformerException ex)        {          transformer.ex = ex;          throw e;        }    }  }  static class NullTransformer    extends Transformer  {      private URIResolver		uriResolver;    private Properties		props = new Properties ();    private Hashtable		params = new Hashtable (7);        ErrorListener			errListener = null;    TransformerException		ex = null;    NullHandler			handler;        NullTransformer ()    {      super ();      handler = new NullHandler (this);    }        public ErrorListener getErrorListener ()    {      return errListener;    }        public void setErrorListener (ErrorListener e)    {      errListener = e;    }        public URIResolver getURIResolver ()    {      return uriResolver;    }        public void setURIResolver (URIResolver u)    {      uriResolver = u;    }    public void setOutputProperties (Properties p)    {      props = (Properties) p.clone ();    }        public Properties getOutputProperties ()    {      return (Properties) props.clone ();    }    public void setOutputProperty (String name, String value)    {      props.setProperty (name, value);    }        public String getOutputProperty (String name)    {      return props.getProperty (name);    }    public void clearParameters ()    {      params.clear ();    }        public void setParameter (String name, Object value)    {      props.put (name, value);    }        public Object getParameter (String name)    {      return props.get (name);    }    public void transform (Source in, Result out)      throws TransformerException    {      try        {          XMLReader		producer;          InputSource		input;                    // Input from DOM?          if (in instanceof DOMSource)            {              DOMSource	source = (DOMSource) in;                            if (source.getNode () == null)                throw new IllegalArgumentException ("no DOM node");              producer = new DomParser (source.getNode ());              input = null;                            // Input from SAX?            }          else if (in instanceof SAXSource)            {              SAXSource	source = (SAXSource) in;                            producer = source.getXMLReader ();              if (producer == null)                producer = XMLReaderFactory.createXMLReader ();                            input = source.getInputSource ();              if (input == null)                {                  if (source.getSystemId () != null)                    input = new InputSource (source.getSystemId ());                  else                    throw new IllegalArgumentException (                                                        "missing SAX input");                }                            // Input from a stream or something?            }          else            {              producer = XMLReaderFactory.createXMLReader ();              input = SAXSource.sourceToInputSource (in);              if (input == null)                throw new IllegalArgumentException ("missing input");            }                    // preserve original namespace prefixes          try            {              producer.setFeature(EventFilter.FEATURE_URI +                                  "namespace-prefixes",                                  true);            }          catch (Exception e)            {              /* ignore */              // FIXME if we couldn't, "NsFix" stage before the output ..            }                    // arrange the output          handler.setResult (out);          EventFilter.bind (producer, handler);                    // then parse ... single element pipeline          producer.parse (input);                  }      catch (IOException e)        {          throw new TransformerException ("transform failed", e);                  }      catch (SAXException e)        {          if (ex == null && ex.getCause () == e)            throw ex;          else            throw new TransformerException ("transform failed", e);                  }      finally        {          ex = null;        }    }  }}

⌨️ 快捷键说明

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