package org.apache.velocity.runtime; import java.io.Reader; import java.io.Writer; import java.util.Properties; import org.apache.commons.collections.ExtendedProperties; import org.apache.velocity.Template; import org.apache.velocity.app.event.EventCartridge; import org.apache.velocity.context.Context; import org.apache.velocity.exception.ParseErrorException; import org.apache.velocity.exception.ResourceNotFoundException; import org.apache.velocity.runtime.directive.Directive; import org.apache.velocity.runtime.log.Log; import org.apache.velocity.runtime.parser.ParseException; import org.apache.velocity.runtime.parser.Parser; import org.apache.velocity.runtime.parser.node.Node; import org.apache.velocity.runtime.parser.node.SimpleNode; import org.apache.velocity.runtime.resource.ContentResource; import org.apache.velocity.util.introspection.Introspector; import org.apache.velocity.util.introspection.Uberspect; public interface RuntimeServices extends RuntimeLogger { void addProperty(String str, Object obj); boolean addVelocimacro(String str, String str2, String[] strArr, String str3); boolean addVelocimacro(String str, Node node, String[] strArr, String str2); void clearProperty(String str); Parser createNewParser(); boolean dumpVMNamespace(String str); boolean evaluate(Context context, Writer writer, String str, Reader reader); boolean evaluate(Context context, Writer writer, String str, String str2); Object getApplicationAttribute(Object obj); EventCartridge getApplicationEventCartridge(); boolean getBoolean(String str, boolean z); ExtendedProperties getConfiguration(); ContentResource getContent(String str) throws ResourceNotFoundException, ParseErrorException; ContentResource getContent(String str, String str2) throws ResourceNotFoundException, ParseErrorException; Directive getDirective(String str); int getInt(String str); int getInt(String str, int i); Introspector getIntrospector(); String getLoaderNameForResource(String str); Log getLog(); Object getProperty(String str); String getString(String str); String getString(String str, String str2); Template getTemplate(String str) throws ResourceNotFoundException, ParseErrorException; Template getTemplate(String str, String str2) throws ResourceNotFoundException, ParseErrorException; Uberspect getUberspect(); Directive getVelocimacro(String str, String str2); Directive getVelocimacro(String str, String str2, String str3); void init(); void init(String str); void init(Properties properties); boolean invokeVelocimacro(String str, String str2, String[] strArr, Context context, Writer writer); boolean isInitialized(); boolean isVelocimacro(String str, String str2); SimpleNode parse(Reader reader, String str) throws ParseException; SimpleNode parse(Reader reader, String str, boolean z) throws ParseException; SimpleNode parse(String str, String str2) throws ParseException; Object setApplicationAttribute(Object obj, Object obj2); void setConfiguration(ExtendedProperties extendedProperties); void setProperty(String str, Object obj); }