|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object info.magnolia.templating.freemarker.AbstractDirective<C>
C
- the templating element the directive is operating onpublic abstract class AbstractDirective<C extends TemplatingElement>
A base class for freemarker directives used in Magnolia.
Field Summary | |
---|---|
static String |
CONTENT_ATTRIBUTE
|
static String |
PATH_ATTRIBUTE
|
static String |
UUID_ATTRIBUTE
|
static String |
WORKSPACE_ATTRIBUTE
|
Fields inherited from interface freemarker.template.TemplateModel |
---|
NOTHING |
Constructor Summary | |
---|---|
AbstractDirective()
|
Method Summary | ||
---|---|---|
protected
|
_param(Map<String,freemarker.template.TemplateModel> params,
String key,
Class<MT> type,
boolean isMandatory)
|
|
protected Boolean |
bool(Map<String,freemarker.template.TemplateModel> params,
String key,
Boolean defaultValue)
|
|
protected void |
checkBody(freemarker.template.TemplateDirectiveBody body,
boolean needsBody)
Utility method for directives who need to ensure they're used with or without a body. |
|
protected Content |
content(Map<String,freemarker.template.TemplateModel> params,
String key,
Content defaultValue)
Deprecated. |
|
protected C |
createTemplatingElement()
|
|
protected void |
doBody(freemarker.core.Environment env,
freemarker.template.TemplateDirectiveBody body)
|
|
void |
execute(freemarker.core.Environment env,
Map params,
freemarker.template.TemplateModel[] loopVars,
freemarker.template.TemplateDirectiveBody body)
|
|
protected Class<C> |
getTemplatingElementClass()
|
|
protected void |
initContentElement(Map<String,freemarker.template.TemplateModel> params,
AbstractContentTemplatingElement component)
Init attributes common to all AbstractContentTemplatingElement . |
|
protected boolean |
mandatoryBool(Map<String,freemarker.template.TemplateModel> params,
String key)
|
|
protected Content |
mandatoryContent(Map<String,freemarker.template.TemplateModel> params,
String key)
Deprecated. |
|
protected Object |
mandatoryObject(Map<String,freemarker.template.TemplateModel> params,
String key)
|
|
protected String |
mandatoryString(Map<String,freemarker.template.TemplateModel> params,
String key)
|
|
protected List<String> |
mandatoryStringList(Map<String,freemarker.template.TemplateModel> params,
String key)
|
|
protected javax.jcr.Node |
node(Map<String,freemarker.template.TemplateModel> params,
String key,
javax.jcr.Node defaultValue)
|
|
protected Object |
object(Map<String,freemarker.template.TemplateModel> params,
String key)
|
|
protected abstract void |
prepareTemplatingElement(C templatingElement,
freemarker.core.Environment env,
Map<String,freemarker.template.TemplateModel> params,
freemarker.template.TemplateModel[] loopVars,
freemarker.template.TemplateDirectiveBody body)
Implementations of this method should prepare the TemplatingElement with the known parameters. |
|
protected String |
string(Map<String,freemarker.template.TemplateModel> params,
String key,
String defaultValue)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String PATH_ATTRIBUTE
public static final String UUID_ATTRIBUTE
public static final String WORKSPACE_ATTRIBUTE
public static final String CONTENT_ATTRIBUTE
Constructor Detail |
---|
public AbstractDirective()
Method Detail |
---|
public void execute(freemarker.core.Environment env, Map params, freemarker.template.TemplateModel[] loopVars, freemarker.template.TemplateDirectiveBody body) throws freemarker.template.TemplateException, IOException
execute
in interface freemarker.template.TemplateDirectiveModel
freemarker.template.TemplateException
IOException
protected C createTemplatingElement()
protected Class<C> getTemplatingElementClass()
protected abstract void prepareTemplatingElement(C templatingElement, freemarker.core.Environment env, Map<String,freemarker.template.TemplateModel> params, freemarker.template.TemplateModel[] loopVars, freemarker.template.TemplateDirectiveBody body) throws freemarker.template.TemplateModelException, IOException
execute(freemarker.core.Environment, java.util.Map, freemarker.template.TemplateModel[], freemarker.template.TemplateDirectiveBody)
will throw a TemplateModelException if there are leftover parameters.
note: The current FreeMarker implementation passes a "new" Map which we can safely manipulate.
is thrown away after the execution of the directive. When no parameters are passed, the Map is readonly, but it
is otherwise a regular HashMap which has been instantiated shortly before the execution of the directive. However, since
this behavior is not mandated by their API, nor documented (at the time of writing, with FreeMarker 2.3.16), we
should exert caution. Unit tests hopefully cover this, so we'll be safe when updating to newer FreeMarker versions.
freemarker.template.TemplateModelException
IOException
protected void doBody(freemarker.core.Environment env, freemarker.template.TemplateDirectiveBody body) throws freemarker.template.TemplateException, IOException
freemarker.template.TemplateException
IOException
protected void checkBody(freemarker.template.TemplateDirectiveBody body, boolean needsBody) throws freemarker.template.TemplateModelException
freemarker.template.TemplateModelException
protected String mandatoryString(Map<String,freemarker.template.TemplateModel> params, String key) throws freemarker.template.TemplateModelException
freemarker.template.TemplateModelException
protected String string(Map<String,freemarker.template.TemplateModel> params, String key, String defaultValue) throws freemarker.template.TemplateModelException
freemarker.template.TemplateModelException
protected boolean mandatoryBool(Map<String,freemarker.template.TemplateModel> params, String key) throws freemarker.template.TemplateModelException
freemarker.template.TemplateModelException
protected Boolean bool(Map<String,freemarker.template.TemplateModel> params, String key, Boolean defaultValue) throws freemarker.template.TemplateModelException
freemarker.template.TemplateModelException
@Deprecated protected Content mandatoryContent(Map<String,freemarker.template.TemplateModel> params, String key) throws freemarker.template.TemplateModelException
freemarker.template.TemplateModelException
@Deprecated protected Content content(Map<String,freemarker.template.TemplateModel> params, String key, Content defaultValue) throws freemarker.template.TemplateModelException
freemarker.template.TemplateModelException
protected javax.jcr.Node node(Map<String,freemarker.template.TemplateModel> params, String key, javax.jcr.Node defaultValue) throws freemarker.template.TemplateModelException
freemarker.template.TemplateModelException
protected Object object(Map<String,freemarker.template.TemplateModel> params, String key) throws freemarker.template.TemplateModelException
freemarker.template.TemplateModelException
protected Object mandatoryObject(Map<String,freemarker.template.TemplateModel> params, String key) throws freemarker.template.TemplateModelException
freemarker.template.TemplateModelException
protected List<String> mandatoryStringList(Map<String,freemarker.template.TemplateModel> params, String key) throws freemarker.template.TemplateModelException
freemarker.template.TemplateModelException
protected <MT extends freemarker.template.TemplateModel> MT _param(Map<String,freemarker.template.TemplateModel> params, String key, Class<MT> type, boolean isMandatory) throws freemarker.template.TemplateModelException
freemarker.template.TemplateModelException
protected void initContentElement(Map<String,freemarker.template.TemplateModel> params, AbstractContentTemplatingElement component) throws freemarker.template.TemplateModelException
AbstractContentTemplatingElement
.
freemarker.template.TemplateModelException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |