org.fusesource.scalate

TemplateEngine

class TemplateEngine extends AnyRef

A TemplateEngine is used to compile and load Scalate templates. The TemplateEngine takes care of setting up the Scala compiler and caching compiled templates for quicker subsequent loads of a requested template.

The TemplateEngine uses a workingDirectory to store the generated scala source code and the bytecode. By default this uses a dynamically generated directory. You can configure this yourself to use whatever directory you wish. Or you can use the scalate.workdir system property to specify the workingDirectory

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. TemplateEngine
  2. AnyRef
  3. Any
Visibility
  1. Public
  2. All

Instance Constructors

  1. new TemplateEngine (sourceDirectories: Traversable[File], mode: String)

Value Members

  1. def != (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  2. def != (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  3. def ## (): Int

    Attributes
    final
    Definition Classes
    AnyRef → Any
  4. def == (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  5. def == (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  6. var allowCaching : Boolean

    Set to false if you don't want the template engine to ever cache any of the compiled templates.

    Set to false if you don't want the template engine to ever cache any of the compiled templates.

    If not explicitly configured this property can be configured using the scalate.allowCaching system property

  7. var allowReload : Boolean

    If true, then the template engine will check to see if the template has been updated since last compiled so that it can be reloaded.

    If true, then the template engine will check to see if the template has been updated since last compiled so that it can be reloaded. Defaults to true. YOu should set to false in production environments since the templates should not be changing.

    If not explicitly configured this property can be configured using the scalate.allowReload system property

  8. def asInstanceOf [T0] : T0

    Attributes
    final
    Definition Classes
    Any
  9. var bindings : List[Binding]

    By default lets bind the context so we get to reuse its methods in a template

  10. def boot : Unit

  11. var bootClassName : String

  12. var bootInjections : List[AnyRef]

  13. def buildSourceMap (stratumName: String, uri: String, scalaFile: File, positions: TreeMap[OffsetPosition, OffsetPosition]): String

    Attributes
    protected
  14. def bytecodeDirectory : File

  15. def cacheHits : Int

    The number of times a template load request was serviced from the cache.

  16. def cacheMisses : Int

    The number of times a template load request could not be serviced from the cache and was loaded from disk.

  17. def canLoad (uri: String, extraBindings: List[Binding]): Boolean

    Returns true if the URI can be loaded as a template

  18. def canLoad (uri: String): Boolean

    Returns true if the URI can be loaded as a template

  19. def canLoad (source: TemplateSource, extraBindings: List[Binding] = Nil): Boolean

    Returns true if the URI can be loaded as a template

  20. def classFileName (uri: String): File

    Attributes
    protected
  21. var classLoader : ClassLoader

  22. var classpath : String

  23. def clone (): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  24. var codeGenerators : Map[String, CodeGenerator]

    The supported template engines and their default extensions

  25. var combinedClassPath : Boolean

    Whether a custom classpath should be combined with the deduced classpath

  26. def compile (source: TemplateSource, extraBindings: List[Binding] = Nil): Template

    Compiles a template source without placing it in the template cache.

    Compiles a template source without placing it in the template cache. Useful for temporary templates or dynamically created template

  27. def compileMoustache (text: String, extraBindings: List[Binding] = Nil): Template

    Compiles the given Moustache template text and returns the template

  28. def compileScaml (text: String, extraBindings: List[Binding] = Nil): Template

    Compiles the given SSP template text and returns the template

  29. def compileSsp (text: String, extraBindings: List[Binding] = Nil): Template

    Compiles the given SSP template text and returns the template

  30. def compileText (extension: String, text: String, extraBindings: List[Binding] = Nil): Template

    Compiles the given text using the given extension (such as ssp or scaml for example to denote what parser to use) and return the template

  31. lazy val compiler : ScalaCompiler

  32. def createRenderContext (uri: String, out: PrintWriter): RenderContext

    Factory method used by the layout helper methods that should be overloaded by template engine implementations if they wish to customize the render context implementation

    Factory method used by the layout helper methods that should be overloaded by template engine implementations if they wish to customize the render context implementation

    Attributes
    protected
  33. def eq (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  34. def equals (arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  35. var escapeMarkup : Boolean

    Whether or not markup sensitive characters for HTML/XML elements like & > < are escaped or not

    Whether or not markup sensitive characters for HTML/XML elements like & > < are escaped or not

  36. def extension (source: TemplateSource): Option[String]

    Extracts the extension from the source's uri though derived engines could override this behaviour to auto default missing extensions or performing custom mappings etc.

    Extracts the extension from the source's uri though derived engines could override this behaviour to auto default missing extensions or performing custom mappings etc.

    Attributes
    protected
  37. def extensions : Set[String]

    Returns the file extensions understood by Scalate; all the template engines and pipelines including the wiki markup languages.

  38. def filter (name: String): Option[Filter]

  39. var filters : Map[String, Filter]

  40. def finalize (): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  41. def generateScala (uri: String): Code

    Generates the Scala code for a template.

    Generates the Scala code for a template. Useful for generating scala code that will then be compiled into the application as part of a build process.

  42. def generateScala (uri: String, extraBindings: List[Binding]): Code

    Generates the Scala code for a template.

    Generates the Scala code for a template. Useful for generating scala code that will then be compiled into the application as part of a build process.

  43. def generateScala (source: TemplateSource, extraBindings: List[Binding] = Nil): Code

    Generates the Scala code for a template.

    Generates the Scala code for a template. Useful for generating scala code that will then be compiled into the application as part of a build process.

  44. def generator (source: TemplateSource): CodeGenerator

    Gets the code generator to use for the give uri string by looking up the uri's extension in the the codeGenerators map.

    Gets the code generator to use for the give uri string by looking up the uri's extension in the the codeGenerators map.

    Attributes
    protected
  45. def generatorForExtension (extension: String): CodeGenerator

    Returns the code generator for the given file extension

    Returns the code generator for the given file extension

    Attributes
    protected
  46. def getClass (): java.lang.Class[_]

    Attributes
    final
    Definition Classes
    AnyRef
  47. def hashCode (): Int

    Definition Classes
    AnyRef → Any
  48. var importStatements : List[String]

    Sets the import statements used in each generated template class

  49. def invalidateCachedTemplates (): Boolean

    Invalidates all cached Templates.

  50. def isDevelopmentMode : Boolean

    Returns true if this template engine is being used in development mode.

  51. def isInstanceOf [T0] : Boolean

    Attributes
    final
    Definition Classes
    Any
  52. def layout (source: TemplateSource, context: RenderContext): Unit

    Renders the given template source using the current layoutStrategy

  53. def layout (source: TemplateSource, context: RenderContext, extraBindings: List[Binding]): Unit

    Renders the given template source using the current layoutStrategy

  54. def layout (source: TemplateSource, attributes: Map[String, Any]): String

    Renders the given template source using the current layoutStrategy

  55. def layout (source: TemplateSource): String

    Renders the given template source using the current layoutStrategy

  56. def layout (uri: String, template: Template): String

  57. def layout (uri: String, context: RenderContext): Unit

  58. def layout (uri: String, template: Template, attributes: Map[String, Any]): String

    Renders the given template returning the output

  59. def layout (uri: String, attributes: Map[String, Any] = Map(), extraBindings: List[Binding] = Nil): String

    Renders the given template URI returning the output

  60. def layout (template: Template, context: RenderContext): Unit

    Renders the given template using the current layoutStrategy

  61. def layout (uri: String, context: RenderContext, extraBindings: List[Binding]): Unit

    Renders the given template URI using the current layoutStrategy

  62. def layoutAsNodes (uri: String, template: Template): NodeSeq

  63. def layoutAsNodes (uri: String, template: Template, attributes: Map[String, Any]): NodeSeq

    Renders the given template returning the output

  64. def layoutAsNodes (uri: String, attributes: Map[String, Any] = Map(), extraBindings: List[Binding] = Nil): NodeSeq

    Renders the given template URI returning the output

  65. var layoutStrategy : LayoutStrategy

  66. def libraryDirectory : File

  67. def load (uri: String): Template

    Compiles and then caches the specified template.

    Compiles and then caches the specified template. If the template was previously cached, the previously compiled template instance is returned. The cache entry in invalidated and then template is re-compiled if the template file has been updated since it was last compiled.

  68. def load (uri: String, extraBindings: List[Binding]): Template

    Compiles and then caches the specified template.

    Compiles and then caches the specified template. If the template was previously cached, the previously compiled template instance is returned. The cache entry in invalidated and then template is re-compiled if the template file has been updated since it was last compiled.

  69. def load (file: File): Template

    Compiles and then caches the specified template.

    Compiles and then caches the specified template. If the template was previously cached, the previously compiled template instance is returned. The cache entry in invalidated and then template is re-compiled if the template file has been updated since it was last compiled.

  70. def load (file: File, extraBindings: List[Binding]): Template

    Compiles and then caches the specified template.

    Compiles and then caches the specified template. If the template was previously cached, the previously compiled template instance is returned. The cache entry in invalidated and then template is re-compiled if the template file has been updated since it was last compiled.

  71. def load (source: TemplateSource, extraBindings: List[Binding] = Nil): Template

    Compiles and then caches the specified template.

    Compiles and then caches the specified template. If the template was previously cached, the previously compiled template instance is returned. The cache entry in invalidated and then template is re-compiled if the template file has been updated since it was last compiled.

  72. var mode : String

  73. def ne (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  74. def notify (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  75. def notifyAll (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  76. var packagePrefix : String

  77. def pipeline (source: TemplateSource): Option[List[Filter]]

    Gets a pipeline to use for the give uri string by looking up the uri's extension in the the pipelines map.

    Gets a pipeline to use for the give uri string by looking up the uri's extension in the the pipelines map.

    Attributes
    protected
  78. var pipelines : Map[String, List[Filter]]

  79. var resourceLoader : ResourceLoader

    Loads resources such as the templates based on URIs

  80. def source (uri: String, templateType: String): TemplateSource

    Returns a template source of the given type of template for the given URI and current resourceLoader

  81. def source (uri: String): TemplateSource

    Returns a template source for the given URI and current resourceLoader

  82. var sourceDirectories : Traversable[File]

  83. def sourceDirectoriesForwarder : TraversableForwarder[File]

    A forwarder so we can refer to whatever the current latest value of sourceDirectories is even if the value is mutated after the TemplateEngine is constructed

    A forwarder so we can refer to whatever the current latest value of sourceDirectories is even if the value is mutated after the TemplateEngine is constructed

    Attributes
    protected
  84. def sourceDirectory : File

  85. def sourceFileName (uri: String): File

    Returns the source file of the template URI

    Returns the source file of the template URI

    Attributes
    protected
  86. val sourceMapLog : Log

    Attributes
    protected
  87. def storeSourceMap (classFile: File, sourceMap: String): Unit

    Attributes
    protected
  88. def synchronized [T0] (arg0: ⇒ T0): T0

    Attributes
    final
    Definition Classes
    AnyRef
  89. var templateDirectories : List[String]

    A list of directories which are searched to load requested templates.

  90. def tmpDirectory : File

  91. def toString (): String

    Definition Classes
    TemplateEngine → AnyRef → Any
  92. def uriToSource (uri: String): UriTemplateSource

    Creates a TemplateSource from a URI

    Creates a TemplateSource from a URI

    Attributes
    protected
  93. def wait (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  94. def wait (arg0: Long, arg1: Int): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  95. def wait (arg0: Long): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  96. def workingDirectory : File

    If not explicitly configured this will default to using the scalate.workdir system property to specify the directory used for generating the scala source code and compiled bytecode - otherwise a temporary directory is used

  97. def workingDirectory_= (value: File): Unit

Inherited from AnyRef

Inherited from Any