try { XSLTC xsltc = _parser.getXSLTC();   String transletName = null; if (_systemId != null) { transletName = Util.baseName(_systemId); } else { transletName = (String)_tfactory.getAttribute("translet-name"); } xsltc.setClassName(transletName);   transletName = xsltc.getClassName();  Stylesheet stylesheet = null; SyntaxTreeNode root = _parser.getDocumentRoot();   if (!_parser.errorsFound() && root != null) {  stylesheet = _parser.makeStylesheet(root); stylesheet.setSystemId(_systemId); stylesheet.setParentStylesheet(null);   if (_uriResolver != null) { stylesheet.setSourceLoader(this); }  _parser.setCurrentStylesheet(stylesheet);   xsltc.setStylesheet(stylesheet);   _parser.createAST(stylesheet); }   if (!_parser.errorsFound() && stylesheet != null) { stylesheet.setMultiDocument(xsltc.isMultiDocument()); stylesheet.setHasIdCall(xsltc.hasIdCall());   synchronized (xsltc.getClass()) { stylesheet.translate(); } }  if (!_parser.errorsFound()) {  final byte[][] bytecodes = xsltc.getBytecodes(); if (bytecodes != null) { _templates = new TemplatesImpl(xsltc.getBytecodes(), transletName, _parser.getOutputProperties(), _indentNumber, _tfactory);   if (_uriResolver != null) { _templates.setURIResolver(_uriResolver); } } } else { StringBuffer errorMessage = new StringBuffer(); Vector errors = _parser.getErrors(); final int count = errors.size(); for (int i = 0; i < count; i++) { if (errorMessage.length() > 0) errorMessage.append('\n'); errorMessage.append(errors.elementAt(i).toString()); } throw new SAXException(ErrorMsg.JAXP_COMPILE_ERR, new TransformerException(errorMessage.toString())); } } catch (CompilerException e) { throw new SAXException(ErrorMsg.JAXP_COMPILE_ERR, e); }
    public void endDocument() {        _parser.endDocument();    }