001    package railo.runtime.compiler;
002    
003    import java.io.IOException;
004    
005    import railo.commons.io.res.Resource;
006    import railo.runtime.PageSource;
007    import railo.runtime.config.ConfigImpl;
008    import railo.runtime.exp.TemplateException;
009    import railo.transformer.library.function.FunctionLib;
010    import railo.transformer.library.tag.TagLib;
011    
012    
013    public interface CFMLCompiler {
014    
015        /**
016         * compiles a CFML source file
017         * @param source cfml source file
018         * @param tld tag library deskriptor
019         * @param fld function library deskriptor
020         * @param classRootDir target directory for generated classes
021         * @param className name of the class will be generated
022         * @throws TemplateException
023         * @throws IOException
024         */
025        public abstract byte[] compile(ConfigImpl config, PageSource source,
026                TagLib[] tld, FunctionLib[] fld, Resource classRootDir, String className)
027                throws TemplateException, IOException, railo.runtime.exp.TemplateException;
028    
029    }