Package com.sun.star.io

Examples of com.sun.star.io.XStreamListener


                    // Set up context class loader for SAXParserFactory and
                    // TransformerFactory calls below:
                    setContextClassLoader(this.getClass().getClassLoader());

                    for (Enumeration e = listeners.elements(); e.hasMoreElements();) {
                        XStreamListener l = (XStreamListener) e.nextElement();
                        l.started();
                    }

                    XSeekable xseek = (XSeekable) UnoRuntime.queryInterface(XSeekable.class, m_xis);
                    if (xseek != null) {
                        xseek.seek(0);
                    }

                    is = new BufferedInputStream(
                            new XInputStreamToInputStreamAdapter(m_xis));
                    //Source xmlsource = new StreamSource(xmlinput);   
                    SAXParserFactory spf = SAXParserFactory.newInstance();
                    spf.setValidating(false);
                    spf.setNamespaceAware(true);
                    XMLReader xmlReader = spf.newSAXParser().getXMLReader();
                    xmlReader.setEntityResolver(XSLTransformer.this);
                    source = new SAXSource(xmlReader, new InputSource(is));

                    // in order to help performance and to remedy a a possible memory
                    // leak in xalan, where it seems, that Transformer instances cannot
                    // be reclaimed though they are no longer referenced here, we use
                    // a cache of weak references to transformers created for specific
                    // style sheet URLs see also #i48384#

                    Transformer transformer = null;
                    Transformation transformation = null;
                    // File stylefile = new File(new URI(stylesheeturl));
                    long lastmod = 0;
                    try {
                        URL uStyle = new URL(stylesheeturl);
                        URLConnection c = uStyle.openConnection();
                        lastmod = c.getLastModified();
                    } catch (java.lang.Exception ex) {
                        // lastmod will remain at 0;
                        if (statsp != null) {
                            statsp.println(ex.getClass().getName() + ": " + ex.getMessage());
                            ex.printStackTrace(statsp);
                        }
                    }

                    synchronized (transformers) {
                        java.lang.ref.WeakReference ref = null;
                        // try to get the transformer reference from the cache                       
                        if ((ref = (java.lang.ref.WeakReference) transformers.get(stylesheeturl)) == null ||
                                (transformation = ((Transformation) ref.get())) == null ||
                                ((Transformation) ref.get()).lastmod < lastmod) {
                            // we cannot find a valid reference for this stylesheet
                            // or the stylsheet was updated
                            if (ref != null) {
                                transformers.remove(stylesheeturl);
                            }
                            // create new transformer for this stylesheet                                                                                  
                            TransformerFactory tfactory = TransformerFactory.newInstance();
                            debug("TransformerFactory is '" + tfactory.getClass().getName() + "'");
                            transformer = tfactory.newTransformer(new StreamSource(stylesheeturl));
                            transformer.setOutputProperty("encoding", "UTF-8");
                            // transformer.setURIResolver(XSLTransformer.this);                 

                            // store the transformation into the cache
                            transformation = new Transformation();
                            transformation.lastmod = lastmod;
                            transformation.transformer = transformer;
                            ref = new java.lang.ref.WeakReference(transformation);
                            transformers.put(stylesheeturl, ref);
                        }
                    }
                    transformer = transformation.transformer;

                    // invalid to set 'null' as parameter as 'null' is not a valid Java object
                    if (sourceurl != null) {
                        transformer.setParameter("sourceURL", sourceurl);
                    }
                    if (sourcebaseurl != null) {
                        transformer.setParameter("sourceBaseURL", sourcebaseurl);
                    }
                    if (targeturl != null) {
                        transformer.setParameter("targetURL", targeturl);
                    }
                    if (targetbaseurl != null) {
                        transformer.setParameter("targetBaseURL", targetbaseurl);
                    }
                    if (pubtype != null) {
                        transformer.setParameter("publicType", pubtype);
                    }
                    if (systype != null) {
                        transformer.setParameter("systemType", systype);
                    }
                    if (svcfactory != null) {
                        transformer.setParameter("XMultiServiceFactory", svcfactory);
                    }
                    os = new BufferedOutputStream(
                            new XOutputStreamToOutputStreamAdapter(m_xos));
                    StreamResult sr = new StreamResult(os);
                    long tstart = System.currentTimeMillis();
                    transformer.transform(source, sr);
                    debug("finished transformation in " + (System.currentTimeMillis() - tstart) + "ms");

                } catch (java.lang.Throwable ex) {
                    // notify any listeners about close
                    for (Enumeration e = listeners.elements(); e.hasMoreElements();) {

                        XStreamListener l = (XStreamListener) e.nextElement();
                        l.error(new com.sun.star.uno.Exception(ex.getClass().getName() + ": " + ex.getMessage()));
                    }
                    if (statsp != null) {
                        statsp.println(ex.getClass().getName() + ": " + ex.getMessage());
                        ex.printStackTrace(statsp);
                    }
                } finally {
                    // dereference input buffer
                    source = null;
                    try {
                        if (is != null) {
                            is.close();
                        }
                        if (os != null) {
                            os.close();
                        }
                        if (m_xis != null) {
                            m_xis.closeInput();
                        }
                        if (m_xos != null) {
                            m_xos.closeOutput();
                        }
                    } catch (java.lang.Throwable ex) {
                        if (statsp != null) {
                            statsp.println(ex.getClass().getName() + ": " + ex.getMessage());
                            ex.printStackTrace(statsp);
                        }
                    }

                    // resetting standard input/error streams from logfile to default
                    if (statsp != null) {
                        System.setErr(origErr);
                        System.setOut(origOut);
                    }
                    // try to release references asap...
                    m_xos = null;
                    m_xis = null;
                    is = null;
                    os = null;
                    // notify any listeners about close
                    if (listeners != null) {
                        for (Enumeration e = listeners.elements(); e.hasMoreElements();) {
                            XStreamListener l = (XStreamListener) e.nextElement();
                            l.closed();
                        }
                    }
                }
            }
        };
View Full Code Here


        try {
            debug("terminate called");
            if (t.isAlive()) {
                t.interrupt();
                for (Enumeration e = listeners.elements(); e.hasMoreElements();) {
                    XStreamListener l = (XStreamListener) e.nextElement();
                    l.terminated();
                }
            }
        } catch (java.lang.Exception ex) {
            if (statsp != null) {
                statsp.println(ex.getClass().getName() + ": " + ex.getMessage());
View Full Code Here

  }

  private void notifyListeners_open() {
    Enumeration elements = _aListeners.elements();
    while(elements.hasMoreElements()) {
      XStreamListener xStreamListener = (XStreamListener)elements.nextElement();
      xStreamListener.started();
    }
  }
View Full Code Here

  }

  private void notifyListeners_close() {
    Enumeration elements = _aListeners.elements();
    while(elements.hasMoreElements()) {
      XStreamListener xStreamListener = (XStreamListener)elements.nextElement();
      xStreamListener.closed();
    }
  }
View Full Code Here

  }
 
  private void notifyListeners_error(com.sun.star.uno.Exception exception) {
    Enumeration elements = _aListeners.elements();
    while(elements.hasMoreElements()) {
      XStreamListener xStreamListener = (XStreamListener)elements.nextElement();
      xStreamListener.error(exception);
    }
  }
View Full Code Here

  }

  private void notifyListeners_open() {
    Enumeration elements = _listeners.elements();
    while(elements.hasMoreElements()) {
      XStreamListener xStreamListener = (XStreamListener)elements.nextElement();
      xStreamListener.started();
    }
  }
View Full Code Here

  }

  private void notifyListeners_close() {
    Enumeration elements = _listeners.elements();
    while(elements.hasMoreElements()) {
      XStreamListener xStreamListener = (XStreamListener)elements.nextElement();
      xStreamListener.closed();
    }
  }
View Full Code Here

  }
 
  private void notifyListeners_error(com.sun.star.uno.Exception exception) {
    Enumeration elements = _listeners.elements();
    while(elements.hasMoreElements()) {
      XStreamListener xStreamListener = (XStreamListener)elements.nextElement();
      xStreamListener.error(exception);
    }
  }
View Full Code Here

  }

  private void notifyListeners_open() {
    Enumeration elements = _aListeners.elements();
    while(elements.hasMoreElements()) {
      XStreamListener xStreamListener = (XStreamListener)elements.nextElement();
      xStreamListener.started();
    }
  }
View Full Code Here

  }

  private void notifyListeners_close() {
    Enumeration elements = _aListeners.elements();
    while(elements.hasMoreElements()) {
      XStreamListener xStreamListener = (XStreamListener)elements.nextElement();
      xStreamListener.closed();
    }
  }
View Full Code Here

TOP

Related Classes of com.sun.star.io.XStreamListener

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.