|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.rythmengine.utils.TextBuilder
org.rythmengine.internal.TemplateBuilder
org.rythmengine.template.TemplateBase
public abstract class TemplateBase
The base class of template implementation. It provides a set of protected methods which is handy to use in template authoring
Nested Class Summary | |
---|---|
protected static class |
TemplateBase.__Itr<T>
The helper class to facilitate generating code for the "for" loop in the template source |
Nested classes/interfaces inherited from class org.rythmengine.utils.TextBuilder |
---|
TextBuilder.StrBuf |
Nested classes/interfaces inherited from interface org.rythmengine.template.ITemplate |
---|
ITemplate.__Context |
Nested classes/interfaces inherited from interface org.rythmengine.template.ITag |
---|
ITag.__Body, ITag.__Parameter, ITag.__ParameterList |
Field Summary | |
---|---|
protected ITemplate.__Context |
__ctx
The render context |
protected RythmEngine |
__engine
The rythm engine that run this template |
protected static ILogger |
__logger
The logger |
protected boolean |
__logTime
|
protected TemplateBase |
__parent
The parent template (layout template) |
protected Map<String,Object> |
__renderArgs
Stores render args of this template. |
Fields inherited from class org.rythmengine.utils.TextBuilder |
---|
__buffer, __caller |
Constructor Summary | |
---|---|
TemplateBase()
Construct a template instance |
Method Summary | ||
---|---|---|
protected void |
__append(boolean b)
Append a boolean to internal buffer |
|
protected void |
__append(char c)
Append a char to internal buffer |
|
protected void |
__append(double d)
Append a double to internal buffer |
|
protected void |
__append(float f)
Append a float to internal buffer |
|
protected void |
__append(int i)
Append an integer to internal buffer |
|
protected void |
__append(long l)
Append a long to internal buffer |
|
protected void |
__append(Object o)
Append a object to internal buffer or output (os or writer). |
|
protected void |
__append(TextBuilder.StrBuf wrapper)
Append a TextBuilder.StrBuf content into the buffer |
|
protected TemplateBase |
__caller()
Return caller of the template when this template is invoked as a tag |
|
ITemplate |
__cloneMe(RythmEngine engine,
ITemplate caller)
Not to be used in user application or template |
|
ICodeType |
__curCodeType()
(not API) Return current code type. |
|
Escape |
__curEscape()
(not API) Return the current escape scheme |
|
Locale |
__curLocale()
(not API) Return the current locale |
|
protected static void |
__debug(String msg,
Object... args)
|
|
Escape |
__defaultEscape()
Return the default escape method . |
|
protected void |
__endSection()
End a layout section. |
|
protected void |
__endSection(boolean def)
End a layout section with a boolean flag mark if it is a default content or not. |
|
RythmEngine |
__engine()
Return the engine running this template |
|
protected static void |
__error(String msg,
Object... args)
|
|
protected static void |
__error(Throwable t,
String msg,
Object... args)
|
|
protected Object |
__eval(String expr)
|
|
protected
|
__get(String name)
Alias of __getRenderArg(String) |
|
protected
|
__getAs(String name,
Class<T> c)
Get render arg and do type cast to the class specified |
|
|
__getRenderArg(String name)
Return a render arg value by name |
|
protected
|
__getRenderProperty(String name)
Get render property by name. |
|
protected
|
__getRenderProperty(String name,
T def)
Get render property by name. |
|
protected
|
__getRenderPropertyAs(String name,
T def)
Get render property by name and do type cast to the specified default value. |
|
protected RawData |
__getSection()
Get layout content as RawData . |
|
protected RawData |
__getSection(String name)
Get a section content as RawData by name. |
|
org.rythmengine.internal.compiler.TemplateClass |
__getTemplateClass(boolean useCaller)
Get the template class of this template. |
|
Map<String,Object> |
__getUserContext()
Return user context previously set to this template instance. |
|
protected void |
__handleTemplateExecutionException(Exception e)
Handle template execution exception. |
|
protected String |
__i18n(String key,
Object... args)
|
|
protected static void |
__info(String msg,
Object... args)
|
|
void |
__init()
the implementation of this method is to be generated by CodeBuilder . |
|
protected void |
__internalBuild()
Not to be used in user application or template |
|
protected TemplateBase |
__internalClone()
Not to be used in user application or template |
|
protected void |
__internalInit()
Not to be used in user application or template |
|
protected String |
__internalRender()
Not to be used in user application or template |
|
protected void |
__invokeTag(int line,
String name)
Invoke a tag. |
|
protected void |
__invokeTag(int line,
String name,
boolean ignoreNonExistsTag)
Invoke a tag. |
|
protected void |
__invokeTag(int line,
String name,
ITag.__ParameterList params)
Invoke a tag. |
|
protected void |
__invokeTag(int line,
String name,
ITag.__ParameterList params,
boolean ignoreNonExistsTag)
Invoke a tag. |
|
protected void |
__invokeTag(int line,
String name,
ITag.__ParameterList params,
ITag.__Body body)
Invoke a tag. |
|
protected void |
__invokeTag(int line,
String name,
ITag.__ParameterList params,
ITag.__Body body,
boolean ignoreNoExistsTag)
Invoke a tag. |
|
protected void |
__invokeTag(int line,
String name,
ITag.__ParameterList params,
ITag.__Body body,
ITag.__Body context)
Invoke a tag. |
|
protected void |
__invokeTag(int line,
String name,
ITag.__ParameterList params,
ITag.__Body body,
ITag.__Body context,
boolean ignoreNonExistsTag)
Invoke a tag. |
|
protected void |
__loadExtendingArgs()
the implementation of this method is to be generated by CodeBuilder . |
|
protected static void |
__log(String msg,
Object... args)
|
|
protected void |
__pLayoutContent()
Print the layout content. |
|
protected void |
__pLayoutSection(String name)
Print a layout section by name. |
|
void |
__prepareRender(ICodeType type,
Locale locale,
RythmEngine engine)
|
|
protected RawData |
__render(String template)
Render another template from within this template. |
|
protected RawData |
__render(String template,
Object... args)
Render another template from this template. |
|
protected String |
__renderArgName(int i)
Return render arg name by position |
|
protected Class[] |
__renderArgTypeArray()
Return render arg type in array. |
|
protected Map<String,Class> |
__renderArgTypeMap()
Return render arg type in Map. |
|
protected TemplateBase |
__set(String name,
Object arg)
alias of __setRenderArg(String, Object) |
|
protected void |
__setLayoutContent(String body)
Set layout content. |
|
protected void |
__setOutput(File file)
Set output file |
|
protected void |
__setOutput(OutputStream os)
Set output stream |
|
protected void |
__setOutput(String path)
Set output file path |
|
protected void |
__setOutput(Writer w)
Set output writer |
|
ITemplate |
__setOutputStream(OutputStream os)
Set binary output stream to the template instance. |
|
ITemplate |
__setRenderArg(int position,
Object arg)
Set a render arg by position |
|
ITemplate |
__setRenderArg(JSONWrapper jsonData)
Set renderArgs using JSON data |
|
ITemplate |
__setRenderArg(String name,
Object arg)
Set a render arg by name |
|
ITemplate |
__setRenderArgs(Map<String,Object> args)
Set renderArgs in name-value pair |
|
ITemplate |
__setRenderArgs(Object... args)
Set renderArgs in position |
|
protected TemplateBase |
__setRenderArgs0(ITag.__ParameterList params)
Set render arg from tag params
Not to be used in user application or template |
|
protected void |
__setRenderProperty(String name,
Object val)
Set render property by name. |
|
ITemplate |
__setSecureCode(String secureCode)
Set secure code (for sandbox purpse) |
|
void |
__setTemplateClass(org.rythmengine.internal.compiler.TemplateClass templateClass)
Set template class and template code type to this template instance |
|
protected void |
__setup()
the implementation of this method is to be generated by CodeBuilder . |
|
ITemplate |
__setUserContext(Map<String,Object> context)
Set user context to the template instance |
|
ITemplate |
__setWriter(Writer writer)
Set a character based writer to the template instance |
|
protected void |
__startSection(String name)
Start a layout section. |
|
protected void |
__triggerRenderEvent(IEvent<Void,ITemplate> event,
RythmEngine engine)
Trigger render events. |
|
protected static void |
__warn(String msg,
Object... args)
|
|
protected static void |
__warn(Throwable t,
String msg,
Object... args)
|
|
TextBuilder |
build()
The CodeBuilder will generate the
implementation of this method usually |
|
TemplateBase |
pe(Object o)
Print a general expression with default escape method |
|
TemplateBase |
pe(Object o,
Escape escape)
Print a general expression, using specified escape method |
|
String |
render()
Render and return result in String. |
|
void |
render(OutputStream os)
Render to binary output stream. |
|
void |
render(Writer w)
Render to character based writer. |
|
protected S |
s()
Return String helper instance . |
Methods inherited from class org.rythmengine.internal.TemplateBuilder |
---|
pe, pe, pe, pe, pe, pe, pe, pe, pe, pe, pe, pe, pe |
Methods inherited from class org.rythmengine.utils.TextBuilder |
---|
__append, __getBuffer, __setBuffer, buffer, caller, clone, getSelfOut, np, p, p, p, p, p, p, p, p, p, p2t, p2tn, p3t, p3tn, p4t, p4tn, pn, pn, pt, ptn, setSelfOut, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.rythmengine.template.ITemplate |
---|
__getBuffer |
Methods inherited from interface org.rythmengine.template.ITag |
---|
__call, __getName, __setBodyContext |
Field Detail |
---|
protected static final ILogger __logger
protected transient RythmEngine __engine
protected Map<String,Object> __renderArgs
protected TemplateBase __parent
protected ITemplate.__Context __ctx
protected boolean __logTime
Constructor Detail |
---|
public TemplateBase()
Method Detail |
---|
public void __setTemplateClass(org.rythmengine.internal.compiler.TemplateClass templateClass)
Not to be called in user application or template
templateClass
- public void __prepareRender(ICodeType type, Locale locale, RythmEngine engine)
protected S s()
String helper instance
. Could be used in
template authoring. For example:
@if (s().empty(userRight)){
@return
}
public ITemplate __setWriter(Writer writer)
ITemplate
__setWriter
in interface ITemplate
public ITemplate __setOutputStream(OutputStream os)
ITemplate
__setOutputStream
in interface ITemplate
public RythmEngine __engine()
engine
running this template
__engine
in interface ITemplate
protected void __invokeTag(int line, String name)
line
- name
- protected void __invokeTag(int line, String name, boolean ignoreNonExistsTag)
line
- name
- ignoreNonExistsTag
- protected void __invokeTag(int line, String name, ITag.__ParameterList params)
line
- name
- params
- protected void __invokeTag(int line, String name, ITag.__ParameterList params, boolean ignoreNonExistsTag)
line
- name
- params
- ignoreNonExistsTag
- protected void __invokeTag(int line, String name, ITag.__ParameterList params, ITag.__Body body)
line
- name
- params
- body
- protected void __invokeTag(int line, String name, ITag.__ParameterList params, ITag.__Body body, boolean ignoreNoExistsTag)
line
- name
- params
- body
- ignoreNoExistsTag
- protected void __invokeTag(int line, String name, ITag.__ParameterList params, ITag.__Body body, ITag.__Body context)
line
- name
- params
- body
- context
- protected void __invokeTag(int line, String name, ITag.__ParameterList params, ITag.__Body body, ITag.__Body context, boolean ignoreNonExistsTag)
line
- name
- params
- body
- context
- ignoreNonExistsTag
- protected RawData __render(String template, Object... args)
@args String customTemplate, Map customParams
@{ Object renderResult = render(customTemplate, customParams);
}
@renderResult
template
- args
-
protected RawData __render(String template)
template
-
RawData
__render(String, Object...)
protected final void __setLayoutContent(String body)
body
- protected void __startSection(String name)
name
- protected void __endSection()
protected void __endSection(boolean def)
def
- protected void __pLayoutSection(String name)
name
- protected RawData __getSection(String name)
RawData
by name. Not to be used in user application or template
name
-
protected RawData __getSection()
RawData
. Not to be used in user application or template
protected void __pLayoutContent()
protected TemplateBase __internalClone()
TemplateBase
public ITemplate __cloneMe(RythmEngine engine, ITemplate caller)
__cloneMe
in interface ITemplate
engine
- the rythm enginecaller
- the caller template
protected void __internalInit()
protected void __setup()
CodeBuilder
.
Not to be used in user application or template
protected void __loadExtendingArgs()
CodeBuilder
.
Not to be used in user application or template
public void __init()
CodeBuilder
.
Not to be used in user application or template
__init
in interface ITemplate
public org.rythmengine.internal.compiler.TemplateClass __getTemplateClass(boolean useCaller)
__getTemplateClass
in interface ITemplate
useCaller
-
TemplateClass
public final void render(OutputStream os)
RythmEngine
render
in interface ITemplate
os
- public final void render(Writer w)
RythmEngine
render
in interface ITemplate
w
- protected void __triggerRenderEvent(IEvent<Void,ITemplate> event, RythmEngine engine)
Not an API for user application
event
- engine
- public final String render()
RythmEngine
render
in interface ITemplate
public ITemplate __setSecureCode(String secureCode)
ITemplate
__setSecureCode
in interface ITemplate
protected void __setOutput(String path)
path
- protected void __setOutput(File file)
file
- protected void __setOutput(OutputStream os)
os
- protected void __setOutput(Writer w)
w
- protected void __internalBuild()
protected String __internalRender()
public TextBuilder build()
CodeBuilder
will generate the
implementation of this method usually
build
in class TextBuilder
TextBuilder
public Map<String,Object> __getUserContext()
ITemplate
__getUserContext
in interface ITemplate
public ITemplate __setUserContext(Map<String,Object> context)
ITemplate
__setUserContext
in interface ITemplate
protected Class[] __renderArgTypeArray()
protected String __renderArgName(int i)
i
-
protected Map<String,Class> __renderArgTypeMap()
public ITemplate __setRenderArgs(Map<String,Object> args)
ITemplate
__setRenderArgs
in interface ITemplate
public ITemplate __setRenderArg(JSONWrapper jsonData)
ITemplate
__setRenderArg
in interface ITemplate
protected TemplateBase __setRenderArgs0(ITag.__ParameterList params)
tag params
Not to be used in user application or template
params
-
public ITemplate __setRenderArgs(Object... args)
ITemplate
__setRenderArgs
in interface ITemplate
public ITemplate __setRenderArg(String name, Object arg)
ITemplate
__setRenderArg
in interface ITemplate
protected final TemplateBase __set(String name, Object arg)
__setRenderArg(String, Object)
name
- arg
-
protected final TemplateBase __caller()
tag
public <T> T __getRenderArg(String name)
ITemplate
__getRenderArg
in interface ITemplate
protected final <T> T __get(String name)
__getRenderArg(String)
T
- name
-
protected final <T> T __getAs(String name, Class<T> c)
T
- name
- c
-
protected final <T> T __getRenderProperty(String name, T def)
If no property found by name then return the default value specified
T
- name
- def
-
protected final <T> T __getRenderProperty(String name)
@get()
directive in teh layout template.
T
- name
-
__setRenderProperty(String, Object)
protected final <T> T __getRenderPropertyAs(String name, T def)
T
- name
- def
-
__getRenderProperty(String)
protected final void __setRenderProperty(String name, Object val)
@set()
directive in the sub template
name
- val
- __getRenderProperty(String)
,
__getRenderProperty(String, Object)
protected final void __handleTemplateExecutionException(Exception e)
e
- public ITemplate __setRenderArg(int position, Object arg)
ITemplate
__setRenderArg
in interface ITemplate
public ICodeType __curCodeType()
ITemplate
__curCodeType
in interface ITemplate
type
public Locale __curLocale()
ITemplate
__curLocale
in interface ITemplate
public Escape __curEscape()
ITemplate
__curEscape
in interface ITemplate
protected void __append(TextBuilder.StrBuf wrapper)
TextBuilder
TextBuilder.StrBuf
content into the buffer
__append
in class TextBuilder
protected void __append(Object o)
TextBuilder
__append
in class TextBuilder
protected void __append(char c)
TextBuilder
__append
in class TextBuilder
protected void __append(int i)
TextBuilder
__append
in class TextBuilder
protected void __append(long l)
TextBuilder
__append
in class TextBuilder
protected void __append(float f)
TextBuilder
__append
in class TextBuilder
protected void __append(double d)
TextBuilder
__append
in class TextBuilder
protected void __append(boolean b)
TextBuilder
__append
in class TextBuilder
public Escape __defaultEscape()
TemplateBuilder
escape method
.
This implementation returns Escape.RAW
.
But the sub class could override this method to return different escape method
__defaultEscape
in class TemplateBuilder
escape
public final TemplateBase pe(Object o)
TemplateBuilder
default escape
method
pe
in class TemplateBuilder
public final TemplateBase pe(Object o, Escape escape)
TemplateBuilder
escape method
pe
in class TemplateBuilder
protected final Object __eval(String expr)
protected static void __log(String msg, Object... args)
protected static void __debug(String msg, Object... args)
protected static void __info(String msg, Object... args)
protected static void __warn(String msg, Object... args)
protected static void __warn(Throwable t, String msg, Object... args)
protected static void __error(String msg, Object... args)
protected static void __error(Throwable t, String msg, Object... args)
protected String __i18n(String key, Object... args)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |