public final class JSilver extends Object implements TemplateRenderer, DataLoader
This is a pure Java version of ClearSilver.
// Load resources (e.g. templates) from directory. JSilver jSilver = new JSilver(new FileResourceLoader("/path/to/templates")); // Set up some data. Data data = new Data(); data.setValue("name.first", "Mr"); data.setValue("name.last", "Man"); // Render template to System.out. Writer output = ...; jSilver.render("say-hello", data, output);For example usage, see java/com/google/clearsilver/jsilver/examples. Additional options can be passed to the constructor using JSilverOptions.
JSilverOptions
,
Data
,
ResourceLoader
Modifier and Type | Field and Description |
---|---|
static String |
AUTO_ESCAPE_KEY |
static String |
VAR_ESCAPE_MODE_KEY |
Constructor and Description |
---|
JSilver(ResourceLoader defaultResourceLoader)
Creates a JSilver instance with default options.
|
JSilver(ResourceLoader defaultResourceLoader,
boolean cacheTemplates)
Deprecated.
|
JSilver(ResourceLoader defaultResourceLoader,
JSilverOptions options) |
Modifier and Type | Method and Description |
---|---|
void |
clearCache()
Force all cached templates to be cleared.
|
Appendable |
createAppendableBuffer()
Override this to change the type of Appendable buffer used in
render(String, Data) . |
Data |
createData()
Create new Data instance, ready to be populated.
|
EscapeMode |
getEscapeMode(Data data)
Determine the escaping to apply based on Config variables in HDF.
|
JSilverOptions |
getOptions()
Returns a copy of the JSilverOptions used by this JSilver instance.
|
ResourceLoader |
getResourceLoader()
Gets underlying ResourceLoader so you can access arbitrary files using the same mechanism as
JSilver.
|
TemplateLoader |
getTemplateLoader()
Returns the TemplateLoader used by this JSilver template renderer.
|
Data |
loadData(String dataFileName)
Loads data in Hierarchical Data Format (HDF) into a new Data object.
|
void |
loadData(String dataFileName,
Data output)
Loads data in Hierarchical Data Format (HDF) into an existing Data object.
|
void |
registerGlobalEscaper(String name,
TextFilter escaper)
Registers a global escaper.
|
void |
registerGlobalFunction(String name,
Function function)
Registers a global Function that can be used from any template.
|
void |
registerGlobalFunction(String name,
TextFilter textFilter)
Registers a global TextFilter as function that can be used from any template.
|
void |
releaseAppendableBuffer(Appendable buffer) |
String |
render(String templateName,
Data data)
Same as
TemplateRenderer.render(String, Data, Appendable) , except returns rendered
template as a String. |
void |
render(String templateName,
Data data,
Appendable output)
Renders a given template and provided data, writing to an arbitrary output.
|
void |
render(String templateName,
Data data,
Appendable output,
ResourceLoader resourceLoader)
Renders a given template and provided data, writing to an arbitrary output.
|
String |
render(Template template,
Data data)
Same as
TemplateRenderer.render(Template,Data,Appendable) , except returns rendered template as a
String. |
void |
render(Template template,
Data data,
Appendable output)
Renders a given template and provided data, writing to an arbitrary output.
|
void |
render(Template template,
Data data,
Appendable output,
ResourceLoader resourceLoader)
Renders a given template and provided data, writing to an arbitrary output.
|
String |
renderFromContent(String content,
Data data)
Same as
renderFromContent(String, Data, Appendable) , except returns rendered template
as a String. |
void |
renderFromContent(String content,
Data data,
Appendable output)
Renders a given template from the content passed in.
|
public static final String VAR_ESCAPE_MODE_KEY
public static final String AUTO_ESCAPE_KEY
public JSilver(ResourceLoader defaultResourceLoader, JSilverOptions options)
defaultResourceLoader
- Where resources (templates, HDF files) should be loaded from. e.g.
directory, classpath, memory, etc.options
- Additional options.JSilverOptions
@Deprecated public JSilver(ResourceLoader defaultResourceLoader, boolean cacheTemplates)
JSilver(ResourceLoader, JSilverOptions)
.defaultResourceLoader
- Where resources (templates, HDF files) should be loaded from. e.g.
directory, classpath, memory, etc.cacheTemplates
- Whether to cache templates. Cached templates are much faster but do not
check the filesystem for updates. Use true in prod, false in dev.public JSilver(ResourceLoader defaultResourceLoader)
defaultResourceLoader
- Where resources (templates, HDF files) should be loaded from. e.g.
directory, classpath, memory, etc.JSilverOptions
public void render(String templateName, Data data, Appendable output, ResourceLoader resourceLoader) throws IOException, JSilverException
render
in interface TemplateRenderer
templateName
- Name of template to load (e.g. "things/blah.cs").data
- Data to be used in template.output
- Where template should be rendered to. This can be a Writer, PrintStream,
System.out/err), StringBuffer/StringBuilder or anything that implements AppendableresourceLoader
- How to find the template data to render and any included files it depends
on.IOException
JSilverException
public void render(String templateName, Data data, Appendable output) throws IOException, JSilverException
render
in interface TemplateRenderer
templateName
- Name of template to load (e.g. "things/blah.cs").data
- Data to be used in template.output
- Where template should be rendered to. This can be a Writer, PrintStream,
System.out/err), StringBuffer/StringBuilder or anything that implementsIOException
JSilverException
public String render(String templateName, Data data) throws IOException, JSilverException
TemplateRenderer.render(String, Data, Appendable)
, except returns rendered
template as a String.render
in interface TemplateRenderer
IOException
JSilverException
public void render(Template template, Data data, Appendable output, ResourceLoader resourceLoader) throws IOException, JSilverException
render
in interface TemplateRenderer
template
- Template to load.data
- Data to be used in template.output
- Where template should be rendered to. This can be a Writer, PrintStream,
System.out/err), StringBuffer/StringBuilder or anything that implements
java.io.Appendable.resourceLoader
- ResourceLoader to use when reading in included files.IOException
JSilverException
public void render(Template template, Data data, Appendable output) throws IOException, JSilverException
render
in interface TemplateRenderer
template
- Template to load.data
- Data to be used in template.output
- Where template should be rendered to. This can be a Writer, PrintStream,
System.out/err), StringBuffer/StringBuilder or anything that implements
java.io.Appendable.IOException
JSilverException
public String render(Template template, Data data) throws IOException, JSilverException
TemplateRenderer
TemplateRenderer.render(Template,Data,Appendable)
, except returns rendered template as a
String.render
in interface TemplateRenderer
IOException
JSilverException
public void renderFromContent(String content, Data data, Appendable output) throws IOException, JSilverException
renderFromContent
in interface TemplateRenderer
content
- Content of template (e.g. "Hello <cs var:name ?>").data
- Data to be used in template.output
- Where template should be rendered to. This can be a Writer, PrintStream,
System.out/err), StringBuffer/StringBuilder or anything that implements
java.io.AppendableIOException
JSilverException
public String renderFromContent(String content, Data data) throws IOException, JSilverException
renderFromContent(String, Data, Appendable)
, except returns rendered template
as a String.renderFromContent
in interface TemplateRenderer
IOException
JSilverException
public EscapeMode getEscapeMode(Data data)
data
- HDF Data to checkpublic Appendable createAppendableBuffer()
render(String, Data)
.public void releaseAppendableBuffer(Appendable buffer)
public void registerGlobalFunction(String name, Function function)
public void registerGlobalFunction(String name, TextFilter textFilter)
public void registerGlobalEscaper(String name, TextFilter escaper)
public Data createData()
createData
in interface DataLoader
public void loadData(String dataFileName, Data output) throws JSilverBadSyntaxException, IOException
loadData
in interface DataLoader
JSilverBadSyntaxException
IOException
public Data loadData(String dataFileName) throws IOException
loadData
in interface DataLoader
IOException
public ResourceLoader getResourceLoader()
public void clearCache()
public TemplateLoader getTemplateLoader()
public JSilverOptions getOptions()
Copyright © 2010-2013 Google. All Rights Reserved.