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) { final TemplatesImpl templates = new TemplatesImpl(xsltc.getBytecodes(), transletName, _parser.getOutputProperties(), _indentNumber, _tfactory);   if (_uriResolver != null) { templates.setURIResolver(_uriResolver); } return templates; } } } catch (CompilerException e) {  } return null;
return _templates;
    public Templates getTemplates() {	try {	    XSLTC xsltc = _parser.getXSLTC();	    // Set the translet class name if not already set	    String transletName = null;	    if (_systemId != null) {		transletName = Util.baseName(_systemId);	    }	    else {	    	transletName = (String)_tfactory.getAttribute("translet-name");	    }	    xsltc.setClassName(transletName);	    // Get java-legal class name from XSLTC module	    transletName = xsltc.getClassName();	    Stylesheet stylesheet = null;	    SyntaxTreeNode root = _parser.getDocumentRoot();	    // Compile the translet - this is where the work is done!	    if (!_parser.errorsFound() && root != null) {		// Create a Stylesheet element from the root node		stylesheet = _parser.makeStylesheet(root);		stylesheet.setSystemId(_systemId);		stylesheet.setParentStylesheet(null);                // Set a document loader (for xsl:include/import) if defined                if (_uriResolver != null) {                    stylesheet.setSourceLoader(this);                }		_parser.setCurrentStylesheet(stylesheet);		// Set it as top-level in the XSLTC object		xsltc.setStylesheet(stylesheet);		// Create AST under the Stylesheet element		_parser.createAST(stylesheet);	    }	    // Generate the bytecodes and output the translet class(es)	    if (!_parser.errorsFound() && stylesheet != null) {		stylesheet.setMultiDocument(xsltc.isMultiDocument());		stylesheet.setHasIdCall(xsltc.hasIdCall());                // Class synchronization is needed for BCEL                synchronized (xsltc.getClass()) {                    stylesheet.translate();                }	    }	    if (!_parser.errorsFound()) {		// Check that the transformation went well before returning		final byte[][] bytecodes = xsltc.getBytecodes();		if (bytecodes != null) {		    final TemplatesImpl templates =			new TemplatesImpl(xsltc.getBytecodes(), transletName,			    _parser.getOutputProperties(), _indentNumber, _tfactory);		    // Set URIResolver on templates object		    if (_uriResolver != null) {			templates.setURIResolver(_uriResolver);		    }		    return templates;		}	    }	}	catch (CompilerException e) {	    // falls through	}	return null;    }