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: Traversable[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: Traversable[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: Traversable[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: Traversable[Binding] = Nil): Template

    Compiles the given Moustache template text and returns the template

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

    Compiles the given SSP template text and returns the template

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

    Compiles the given SSP template text and returns the template

  30. def compileText (extension: String, text: String, extraBindings: Traversable[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 : Compiler

  32. var compilerInitialized : Boolean

  33. def createCompiler : Compiler

    Factory method to create a compiler for this TemplateEngine.

    Factory method to create a compiler for this TemplateEngine. Override if you wish to contorl the compilation in a different way such as in side SBT or something.

    Attributes
    protected
  34. 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
  35. def eq (arg0: AnyRef): Boolean

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

    Definition Classes
    AnyRef → Any
  37. 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

  38. 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
  39. var extensionToTemplateExtension : Map[String, Set[String]]

    Maps file extensions to possible template extensions for custom mappins such as for Map("js" -> Set("coffee"), "css" => Set("sass", "scss"))

  40. def extensions : Set[String]

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

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

  42. var filters : Map[String, Filter]

  43. def finalize (): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  44. val finderCache : ConcurrentHashMap[String, String]

  45. 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.

  46. def generateScala (uri: String, extraBindings: Traversable[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.

  47. def generateScala (source: TemplateSource, extraBindings: Traversable[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.

  48. 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
  49. 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
  50. def getClass (): java.lang.Class[_]

    Attributes
    final
    Definition Classes
    AnyRef → Any
  51. def hashCode (): Int

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

    Sets the import statements used in each generated template class

  53. def invalidateCachedTemplates (): Boolean

    Invalidates all cached Templates.

  54. def isDevelopmentMode : Boolean

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

  55. def isInstanceOf [T0] : Boolean

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

    Renders the given template source using the current layoutStrategy

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

    Renders the given template source using the current layoutStrategy

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

    Renders the given template source using the current layoutStrategy

  59. def layout (source: TemplateSource): String

    Renders the given template source using the current layoutStrategy

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

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

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

    Renders the given template returning the output

  63. def layout (uri: String, template: Template, out: PrintWriter, attributes: Map[String, Any]): Unit

    Attributes
    protected
  64. def layout (uri: String, out: PrintWriter, attributes: Map[String, Any]): Unit

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

    Renders the given template URI returning the output

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

    Renders the given template using the current layoutStrategy

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

    Renders the given template URI using the current layoutStrategy

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

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

    Renders the given template returning the output

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

    Renders the given template URI returning the output

  71. var layoutStrategy : LayoutStrategy

  72. def libraryDirectory : File

  73. 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.

  74. def load (uri: String, extraBindings: Traversable[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.

  75. 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.

  76. def load (file: File, extraBindings: Traversable[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.

  77. def load (source: TemplateSource, extraBindings: Traversable[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.

  78. var mode : String

  79. def ne (arg0: AnyRef): Boolean

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

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

    Attributes
    final
    Definition Classes
    AnyRef
  82. var packagePrefix : String

  83. 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
  84. var pipelines : Map[String, List[Filter]]

  85. var resourceLoader : ResourceLoader

    Loads resources such as the templates based on URIs

  86. def shutdown (): Unit

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

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

  88. def source (uri: String): TemplateSource

    Returns a template source for the given URI and current resourceLoader

  89. var sourceDirectories : Traversable[File]

  90. 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
  91. def sourceDirectory : File

  92. def sourceFileName (uri: String): File

    Returns the source file of the template URI

    Returns the source file of the template URI

    Attributes
    protected
  93. val sourceMapLog : Log

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

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

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

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

  97. def templateExtensionsFor (extension: String): Set[String]

    Returns the mutable set of template extensions which are mapped to the given URI extension.

  98. def tmpDirectory : File

  99. def toString (): String

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

    Creates a TemplateSource from a URI

    Creates a TemplateSource from a URI

    Attributes
    protected
  101. def wait (): Unit

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

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

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  104. 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

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

Inherited from AnyRef

Inherited from Any