/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.lang.parser.template;
import gw.lang.parser.IGosuParser;
import gw.lang.parser.ISymbol;
import gw.lang.parser.ISymbolTable;
import gw.lang.parser.exceptions.ParseResultsException;
import gw.lang.parser.expressions.IProgram;
import gw.lang.reflect.IType;
import java.io.Writer;
import java.util.List;
public interface ITemplateGenerator
{
String PRINT_METHOD = "printContent";
String PRINT_COMPRESSED_METHOD = "printCompressed";
String PRINT_RANGE_METHOD = "printRange";
void execute( Writer writer, ISymbolTable symbolTable ) throws TemplateParseException;
void execute( Writer writer, StringEscaper escaper, ISymbolTable symTable ) throws TemplateParseException;
void compile( ISymbolTable symTable ) throws TemplateParseException;
void verify( IGosuParser parser ) throws ParseResultsException;
boolean isValid();
List<ISymbol> getParameters();
IType getSuperType();
String getFullyQualifiedTypeName();
List<TemplateParseException> getTemplateSyntaxProblems();
IProgram getProgram();
String getSource();
}