zweb/src/main/java/org/zkoss/web/servlet/dsp/impl/RootNode.java

Summary

Maintainability
A
0 mins
Test Coverage
/* RootNode.java

    Purpose:
        
    Description:
        
    History:
        Sat Sep 17 12:35:35     2005, Created by tomyeh

Copyright (C) 2004 Potix Corporation. All Rights Reserved.

{{IS_RIGHT
    This program is distributed under LGPL Version 2.1 in the hope that
    it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.web.servlet.dsp.impl;

import java.io.IOException;
import java.util.Iterator;

import org.zkoss.web.servlet.dsp.DspContext;
import org.zkoss.web.servlet.dsp.DspException;
import org.zkoss.web.servlet.dsp.Interpretation;
import org.zkoss.web.servlet.xel.RequestContexts;
import org.zkoss.xel.FunctionMapper;

/**
 * The root node for the parsed result.
 *
 * @author tomyeh
 */
class RootNode extends Node implements Interpretation {
    //    private static final Logger log = LoggerFactory.getLogger(RootNode.class);

    private FunctionMapper _mapper;

    RootNode() {
    }

    void setFunctionMapper(FunctionMapper mapper) {
        _mapper = mapper;
    }

    //-- Node --//
    void interpret(InterpretContext ic) throws DspException, IOException {
        if (_children == null)
            return;

        ic.init(_mapper);
        for (Iterator it = _children.iterator(); it.hasNext();) {
            ((Node) it.next()).interpret(ic);
        }
    }

    //-- Interpretation --//
    public void interpret(DspContext dc) throws DspException, IOException {
        RequestContexts.push(dc);
        try {
            interpret(new InterpretContext(dc));
        } finally {
            RequestContexts.pop();
        }
    }
}