bundles/org.apache.jasper.glassfish/src/org/apache/jasper/compiler/SmapUtil.java
public void generateSmap(Node.Nodes pageNodes)
        throws IOException {

        classInfos = new ArrayList<ClassInfo>();
        String className = ctxt.getFullClassName();

        // Instantiate a SmapStratum for the main JSP page.
        SmapStratum s = new SmapStratum("JSP");
        classInfos.add(new ClassInfo(className, s));

        // Map out Node.Nodes and putting LineInfo into SmapStratum
        evaluateNodes(pageNodes, s, ctxt.getOptions().getMappedFile());

        String classFileName = ctxt.getClassFileName();
        for (ClassInfo entry: classInfos) {
            // Get SmapStratum
            s = entry.getSmapStratum();
            s.optimizeLineSection();

            // Set up our SMAP generator
            SmapGenerator g = new SmapGenerator();
            g.setOutputFileName(unqualify(ctxt.getServletJavaFileName()));
            g.addStratum(s, true);
 
            String name = entry.getClassName();  // class name
            // Compute the class name and output file name for inner classes
            if (!className.equals(name)) {
                classFileName = ctxt.getOutputDir() + 
                    name.substring(name.lastIndexOf('.')+1) + ".class";
            }
            entry.setClassFileName(classFileName);
            entry.setSmap(g.getString());

            if (ctxt.getOptions().isSmapDumped()) {
                File outSmap = new File(classFileName + ".smap");
                PrintWriter so =
                    new PrintWriter(
                        new OutputStreamWriter(
                            new FileOutputStream(outSmap),
                            SMAP_ENCODING));
                so.print(g.getString());
                so.close();
            }
        }
    }
public void generateSmap(Node.Nodes pageNodes)
        throws IOException {

        classInfos = new ArrayList<ClassInfo>();
        String className = ctxt.getFullClassName();

        // Instantiate a SmapStratum for the main JSP page.
        SmapStratum s = new SmapStratum("JSP");
        classInfos.add(new ClassInfo(className, s));

        // Map out Node.Nodes and putting LineInfo into SmapStratum
        evaluateNodes(pageNodes, s, ctxt.getOptions().getMappedFile());

        String classFileName = ctxt.getClassFileName();
        for (ClassInfo entry: classInfos) {
            // Get SmapStratum
            s = entry.getSmapStratum();
            s.optimizeLineSection();

            // Set up our SMAP generator
            SmapGenerator g = new SmapGenerator();
            g.setOutputFileName(unqualify(ctxt.getServletJavaFileName()));
            g.addStratum(s, true);
 
            String name = entry.getClassName();  // class name
            // Compute the class name and output file name for inner classes
            if (!className.equals(name)) {
                classFileName = ctxt.getOutputDir() + 
                    name.substring(name.lastIndexOf('.')+1) + ".class";
            }
            entry.setClassFileName(classFileName);
            entry.setSmap(g.getString());

            if (ctxt.getOptions().isSmapDumped()) {
                File outSmap = new File(classFileName + ".smap");
                PrintWriter so =
                    new PrintWriter(
                        new OutputStreamWriter(
                            new FileOutputStream(outSmap),
                            SMAP_ENCODING));
                so.print(g.getString());
                so.close();
            }
        }
    }
public void generateSmap ( Node . Nodes pageNodes ) throws IOException { classInfos = new ArrayList < ClassInfo > ( ) ; String className = ctxt . getFullClassName ( ) ; // Instantiate a SmapStratum for the main JSP page. SmapStratum s = new SmapStratum ( "JSP" ) ; classInfos . add ( new ClassInfo ( className , s ) ) ; // Map out Node.Nodes and putting LineInfo into SmapStratum evaluateNodes ( pageNodes , s , ctxt . getOptions ( ) . getMappedFile ( ) ) ; String classFileName = ctxt . getClassFileName ( ) ; for ( ClassInfo entry : classInfos ) { // Get SmapStratum s = entry . getSmapStratum ( ) ; s . optimizeLineSection ( ) ; // Set up our SMAP generator SmapGenerator g = new SmapGenerator ( ) ; g . setOutputFileName ( unqualify ( ctxt . getServletJavaFileName ( ) ) ) ; g . addStratum ( s , true ) ; String name = entry . getClassName ( ) ; // class name // Compute the class name and output file name for inner classes if ( ! className . equals ( name ) ) { classFileName = ctxt . getOutputDir ( ) + name . substring ( name . lastIndexOf ( ' ' ) + 1 ) + ".class" ; } entry . setClassFileName ( classFileName ) ; entry . setSmap ( g . getString ( ) ) ; if ( ctxt . getOptions ( ) . isSmapDumped ( ) ) { File outSmap = new File ( classFileName + ".smap" ) ; PrintWriter so = new PrintWriter ( new OutputStreamWriter ( new FileOutputStream ( outSmap ) , SMAP_ENCODING ) ) ; so . print ( g . getString ( ) ) ; so . close ( ) ; } } }
Generates an appropriate SMAP representing the current compilation
context.  (JSR-045.)

@param ctxt Current compilation context
@param pageNodes The current JSP page
@return a SMAP for the page
Generates an appropriate SMAP representing the current compilation context . ( JSR - 045 . )