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

go to: companion
linear super types: AnyRef, Any
known subclasses: DummyTemplateEngine, ServletTemplateEngine
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. TemplateEngine
  2. AnyRef
  3. Any
Visibility
  1. Public
  2. All
Impl.
  1. Concrete
  2. Abstract

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

    o != arg0 is the same as !(o == (arg0)).

    o != arg0 is the same as !(o == (arg0)).

    arg0

    the object to compare against this object for dis-equality.

    returns

    false if the receiver object is equivalent to the argument; true otherwise.

    attributes: final
    definition classes: Any
  3. def ## () : Int

    attributes: final
    definition classes: AnyRef → Any
  4. def $asInstanceOf [T0] () : T0

    attributes: final
    definition classes: AnyRef
  5. def $isInstanceOf [T0] () : Boolean

    attributes: final
    definition classes: AnyRef
  6. def == (arg0: AnyRef) : Boolean

    o == arg0 is the same as if (o eq null) arg0 eq null else o.equals(arg0).

    o == arg0 is the same as if (o eq null) arg0 eq null else o.equals(arg0).

    arg0

    the object to compare against this object for equality.

    returns

    true if the receiver object is equivalent to the argument; false otherwise.

    attributes: final
    definition classes: AnyRef
  7. def == (arg0: Any) : Boolean

    o == arg0 is the same as o.equals(arg0).

    o == arg0 is the same as o.equals(arg0).

    arg0

    the object to compare against this object for equality.

    returns

    true if the receiver object is equivalent to the argument; false otherwise.

    attributes: final
    definition classes: Any
  8. 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

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

  10. def asInstanceOf [T0] : T0

    This method is used to cast the receiver object to be of type T0.

    This method is used to cast the receiver object to be of type T0.

    Note that the success of a cast at runtime is modulo Scala's erasure semantics. Therefore the expression1.asInstanceOf[String] will throw a ClassCastException at runtime, while the expressionList(1).asInstanceOf[List[String]] will not. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the requested typed.

    returns

    the receiver object.

    attributes: final
    definition classes: Any
  11. var bindings : List[Binding]

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

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

  12. def boot : Unit

  13. var bootClassName : String

  14. var bootInjections : List[AnyRef]

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

    attributes: protected
  16. def bytecodeDirectory : File

  17. def cacheHits : Int

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

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

  18. def cacheMisses : Int

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

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

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

    Returns true if the URI can be loaded as a template

    Returns true if the URI can be loaded as a template

  20. def canLoad (uri: String) : Boolean

    Returns true if the URI can be loaded as a template

    Returns true if the URI can be loaded as a template

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

    Returns true if the URI can be loaded as a template

    Returns true if the URI can be loaded as a template

  22. def classFileName (uri: String) : File

    attributes: protected
  23. var classLoader : ClassLoader

  24. var classpath : String

  25. def clone () : AnyRef

    This method creates and returns a copy of the receiver object.

    This method creates and returns a copy of the receiver object.

    The default implementation of the clone method is platform dependent.

    returns

    a copy of the receiver object.

    attributes: protected
    definition classes: AnyRef
  26. var codeGenerators : Map[String, CodeGenerator]

    The supported template engines and their default extensions

    The supported template engines and their default extensions

  27. var combinedClassPath : Boolean

    Whether a custom classpath should be combined with the deduced classpath

    Whether a custom classpath should be combined with the deduced classpath

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

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

    Compiles the given Moustache template text and returns the template

    Compiles the given Moustache template text and returns the template

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

    Compiles the given SSP template text and returns the template

    Compiles the given SSP template text and returns the template

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

    Compiles the given SSP template text and returns the template

    Compiles the given SSP template text and returns the template

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

    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

  33. lazy val compiler : Compiler

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

    This method is used to test whether the argument (arg0) is a reference to the receiver object (this).

    This method is used to test whether the argument (arg0) is a reference to the receiver object (this).

    The eq method implements an [http://en.wikipedia.org/wiki/Equivalence_relation equivalence relation] on non-null instances of AnyRef: * It is reflexive: for any non-null instance x of type AnyRef, x.eq(x) returns true. * It is symmetric: for any non-null instances x and y of type AnyRef, x.eq(y) returns true if and only if y.eq(x) returns true. * It is transitive: for any non-null instances x, y, and z of type AnyRef if x.eq(y) returns true and y.eq(z) returns true, then x.eq(z) returns true.

    Additionally, the eq method has three other properties. * It is consistent: for any non-null instances x and y of type AnyRef, multiple invocations of x.eq(y) consistently returns true or consistently returns false. * For any non-null instance x of type AnyRef, x.eq(null) and null.eq(x) returns false. * null.eq(null) returns true.

    When overriding the equals or hashCode methods, it is important to ensure that their behavior is consistent with reference equality. Therefore, if two objects are references to each other (o1 eq o2), they should be equal to each other (o1 == o2) and they should hash to the same value (o1.hashCode == o2.hashCode).

    arg0

    the object to compare against this object for reference equality.

    returns

    true if the argument is a reference to the receiver object; false otherwise.

    attributes: final
    definition classes: AnyRef
  37. def equals (arg0: Any) : Boolean

    This method is used to compare the receiver object (this) with the argument object (arg0) for equivalence.

    This method is used to compare the receiver object (this) with the argument object (arg0) for equivalence.

    The default implementations of this method is an [http://en.wikipedia.org/wiki/Equivalence_relation equivalence relation]: * It is reflexive: for any instance x of type Any, x.equals(x) should return true. * It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and only if y.equals(x) returns true. * It is transitive: for any instances x, y, and z of type AnyRef if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.

    If you override this method, you should verify that your implementation remains an equivalence relation. Additionally, when overriding this method it is often necessary to override hashCode to ensure that objects that are "equal" (o1.equals(o2) returns true) hash to the same scala.Int (o1.hashCode.equals(o2.hashCode)).

    arg0

    the object to compare against this object for equality.

    returns

    true if the receiver object is equivalent to the argument; false otherwise.

    definition classes: AnyRef → Any
  38. 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

  39. 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
  40. def extensions : Set[String]

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

    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

    This method is called by the garbage collector on the receiver object when garbage collection determines that there are no more references to the object.

    This method is called by the garbage collector on the receiver object when garbage collection determines that there are no more references to the object.

    The details of when and if the finalize method are invoked, as well as the interaction between finalizeand non-local returns and exceptions, are all platform dependent.

    attributes: protected
    definition classes: AnyRef
  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: 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.

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

  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[_]

    Returns a representation that corresponds to the dynamic class of the receiver object.

    Returns a representation that corresponds to the dynamic class of the receiver object.

    The nature of the representation is platform dependent.

    returns

    a representation that corresponds to the dynamic class of the receiver object.

    attributes: final
    definition classes: AnyRef
  51. def hashCode () : Int

    Returns a hash code value for the object.

    Returns a hash code value for the object.

    The default hashing algorithm is platform dependent.

    Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)) yet not be equal (o1.equals(o2) returns false). A degenerate implementation could always return 0. However, it is required that if two objects are equal (o1.equals(o2) returns true) that they have identical hash codes (o1.hashCode.equals(o2.hashCode)). Therefore, when overriding this method, be sure to verify that the behavior is consistent with the equals method.

    returns

    the hash code value for the object.

    definition classes: AnyRef → Any
  52. var importStatements : List[String]

    Sets the import statements used in each generated template class

    Sets the import statements used in each generated template class

  53. def invalidateCachedTemplates () : Boolean

    Invalidates all cached Templates.

    Invalidates all cached Templates.

  54. def isDevelopmentMode : Boolean

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

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

  55. def isInstanceOf [T0] : Boolean

    This method is used to test whether the dynamic type of the receiver object is T0.

    This method is used to test whether the dynamic type of the receiver object is T0.

    Note that the test result of the test is modulo Scala's erasure semantics. Therefore the expression1.isInstanceOf[String] will return false, while the expression List(1).isInstanceOf[List[String]] will return true. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the requested typed.

    returns

    true if the receiver object is an instance of erasure of type T0; false otherwise.

    attributes: final
    definition classes: Any
  56. def layout (source: TemplateSource, context: RenderContext) : Unit

    Renders the given template source using the current layoutStrategy

    Renders the given template source using the current layoutStrategy

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

    Renders the given template source using the current layoutStrategy

    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

    Renders the given template source using the current layoutStrategy

  59. def layout (source: TemplateSource) : String

    Renders the given template source using the current layoutStrategy

    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

    Renders the given template returning the output

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

    Renders the given template URI returning the output

    Renders the given template URI returning the output

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

    Renders the given template using the current layoutStrategy

    Renders the given template using the current layoutStrategy

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

    Renders the given template URI using the current layoutStrategy

    Renders the given template URI using the current layoutStrategy

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

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

    Renders the given template returning the output

    Renders the given template returning the output

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

    Renders the given template URI returning the output

    Renders the given template URI returning the output

  69. var layoutStrategy : LayoutStrategy

  70. def libraryDirectory : File

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

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

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

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

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

  76. var mode : String

  77. def ne (arg0: AnyRef) : Boolean

    o.ne(arg0) is the same as !(o.eq(arg0)).

    o.ne(arg0) is the same as !(o.eq(arg0)).

    arg0

    the object to compare against this object for reference dis-equality.

    returns

    false if the argument is not a reference to the receiver object; true otherwise.

    attributes: final
    definition classes: AnyRef
  78. def notify () : Unit

    Wakes up a single thread that is waiting on the receiver object's monitor.

    Wakes up a single thread that is waiting on the receiver object's monitor.

    attributes: final
    definition classes: AnyRef
  79. def notifyAll () : Unit

    Wakes up all threads that are waiting on the receiver object's monitor.

    Wakes up all threads that are waiting on the receiver object's monitor.

    attributes: final
    definition classes: AnyRef
  80. var packagePrefix : String

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

  83. var resourceLoader : ResourceLoader

    Loads resources such as the templates based on URIs

    Loads resources such as the templates based on URIs

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

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

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

  85. def source (uri: String) : TemplateSource

    Returns a template source for the given URI and current resourceLoader

    Returns a template source for the given URI and current resourceLoader

  86. var sourceDirectories : Traversable[File]

  87. 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
  88. def sourceDirectory : File

  89. def sourceFileName (uri: String) : File

    Returns the source file of the template URI

    Returns the source file of the template URI

    attributes: protected
  90. val sourceMapLog : Log

    attributes: protected
  91. def storeSourceMap (classFile: File, sourceMap: String) : Unit

    attributes: protected
  92. def synchronized [T0] (arg0: T0) : T0

    attributes: final
    definition classes: AnyRef
  93. var templateDirectories : List[String]

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

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

  94. def tmpDirectory : File

  95. def toString () : String

    Returns a string representation of the object.

    Returns a string representation of the object.

    The default representation is platform dependent.

    returns

    a string representation of the object.

    definition classes: TemplateEngine → AnyRef → Any
  96. def uriToSource (uri: String) : UriTemplateSource

    Creates a TemplateSource from a URI

    Creates a TemplateSource from a URI

    attributes: protected
  97. def wait () : Unit

    attributes: final
    definition classes: AnyRef
  98. def wait (arg0: Long, arg1: Int) : Unit

    attributes: final
    definition classes: AnyRef
  99. def wait (arg0: Long) : Unit

    attributes: final
    definition classes: AnyRef
  100. 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

    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

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

Inherited from AnyRef

Inherited from Any